agentrq is a free, open source project & work management project written in Go and released under AGPL-3.0. It has 1,176 GitHub stars, 86 forks and 6 open issues, and was last pushed 15 hours ago. On this registry it ranks #50 of 73 tracked projects in Project & Work Management, with 5 head-to-head comparisons available. It gained 40 stars over the last 30 tracked days.

What is agentrq?

AgentRQ is a self-hosted, Apache-2.0 human-in-the-loop task manager that gives human operators and AI agents one shared workspace over the Model Context Protocol, aimed at people who run their own Claude subscriptions or any agent harness with ACP support.

What it is

AgentRQ is a platform for collaboration between human operators and AI agents, written in Go with a Vue.js 3 frontend and released under Apache-2.0. It lives in the agentic-AI ecosystem and speaks the Model Context Protocol through an integrated mcp-go SSE server that exposes tools and resources to models such as Claude. The architecture is decoupled and service-oriented: a Fiber-based REST API for workspace and task management, an MCP server, and a CoreMCP supervisor that is a global MCP server letting agents manage all workspaces, tasks and statistics across the platform. Storage is GORM over SQLite with user-scoped persistence, authentication is Google OAuth2 with JWT-based sessions, and an internal pub/sub event bus drives real-time SSE notifications. The frontend is built with Vue 3, Pinia and Tailwind CSS.

The concrete problem it solves is the gap between a person and the agent doing the work. It replaces polling loops and glue code: a background poller ticks every minute and spawns a scheduled task the instant it is due, so no server or agent has to stay awake and wait. It replaces YAML and decision-tree DSLs in release orchestration with a visible graph of events and workspaces. It also replaces the single browser tab chained to one agent session, because the board, tasks and conversations reach mobile, web and desktop.

Key capabilities

  • Visual task board: every task Claude creates appears instantly, viewable on any device as a list or a Kanban, with a ⌘K (Ctrl+K off macOS) finder that matches any word in a task title or description from locally saved copy.
  • Task scheduling: a launch date or recurring cadence of every 15 minutes, hourly, daily, weekly or custom days, spawned by a poller that runs each minute.
  • Events: named signals such as qa_passed, deploy_finished and blog_published fired on completion; wiring an event to a workspace creates the next task automatically, with no polling and no glue code.
  • Workflows: events and workspaces arranged on a graph, where dragging a workspace onto an event subscribes it and dragging an event onto a workspace emits it on completion.
  • Tool Call History: the task detail view's History tab lays out a lane-grouped timeline of every tool call and message in a run across Input, Agent and Tools, searchable and showing whether each was allowed or denied.
  • On-device privacy features: auto-title generation uses a small language model downloaded once and cached by the browser, and dictation uses an in-browser Whisper model, so neither text nor voice leaves the machine.
  • Message send delay: a per-workspace countdown of 3s, 5s, 10s, 15s, 30s or 60s before a chat message reaches the agent, with Send Now and Cancel, off by default.

Who uses it and how

  • Operators running their own Claude subscriptions, who let agents pull assigned tasks, update statuses and request permissions for sensitive actions over MCP.
  • Teams with ACP-capable harnesses: the topics list acp-client, acp-gateway, claude-plugin, deepseek-harness-plugin, dsh-plugin and hermes-agent, so AgentRQ acts as the shared gateway those harnesses connect through.
  • Release pipeline owners who model their process as a Workflow graph and chain tasks through events such as deploy_finished.
  • Mobile-first operators who control agents from a phone, web browser or desktop client rather than a terminal session.
  • Supervisors using the CoreMCP global server to manage workspaces, tasks and statistics across the whole platform from one agent.

Getting started

The README excerpt supplied here contains no install command, package name or Docker image; https://agentrq.com is listed as the homepage and is the reference point for hosted use. Self-hosting means running the Go Fiber API server and MCP server, building the Vue 3 frontend, and providing SQLite storage plus Google OAuth2 credentials.

How it compares

This registry provides no list of paid products that AgentRQ replaces, so no licence, cost or data-ownership comparison can be drawn from the supplied facts. It stands as an MCP and ACP gateway layer that sits alongside the harnesses named in its topics, rather than as a harness itself.

When to use it — and when not to

Choose AgentRQ when agents already speak MCP or ACP and the goal is one shared board for humans and agents across devices. A self-hoster must operate the Go backend, SQLite storage, a Google OAuth2 client and the frontend build, so teams wanting a turnkey hosted service, or teams with no MCP-capable agent, should look elsewhere. The README excerpt is detailed on features but silent on installation and deployment steps, which makes setup effort impossible to judge from the facts given.

project readme (upstream, from github) — read inline

AgentRQ ── Agent-Human Collaboration Platform

简体中文

Discord

AgentRQ is a modern, high-performance platform designed for seamless collaboration between human operators and AI agents. It leverages the Model Context Protocol (MCP) to allow AI models (like Claude) to interact directly with your workspace's task management system.

🚀 Overview

Think of AgentRQ as a shared workspace where humans and AI agents work together seamlessly. You can break down complex goals into manageable tasks, and delegate work directly to your AI agents.

Because agents "see" the workspace state via MCP, they can autonomously pull their assigned tasks, update statuses, request permissions for sensitive actions, and communicate with you—all synchronized instantly across the platform in real-time.

✨ Features

Real captures from the running app — no mockups.

Visual Task Board

Every task Claude creates appears instantly on your board. See what it's working on, what it needs, and what it just finished — all from a clean, fast dashboard you can open on any device, as a list or a Kanban.

AgentRQ active tasks dashboard and kanban board
AgentRQ scheduled task auto-spawning into the dashboard

Task Scheduling

Give any task a launch date, or a recurring cadence — every 15 minutes, hourly, daily, weekly, custom days. A background poller ticks every minute and spawns the task the instant it's due, no server or agent needing to stay awake and wait.

Events

Events are named signals — qa_passed, deploy_finished, blog_published — that any task can fire when it completes. Wire one to a workspace and that workspace gets a new task automatically, no polling and no glue code.

AgentRQ events list and configured trigger
AgentRQ workflow node graph

Workflows

A Workflow is Events and workspaces arranged on a graph. Drag a workspace onto an event to subscribe it; drag an event onto a workspace to emit it on completion. No decision-tree DSL, no YAML — just the shape of your release process, visible.

Tool Call History

The task detail view's History tab lays out a lane-grouped timeline of every tool call and message in a run — Input, Agent, and Tools. Search it, click into any entry, and see exactly what ran, what it returned, and whether it was allowed or denied.

AgentRQ tool call history trajectory panel
AgentRQ auto-title generation in action

Auto-Title Generation

Write your task description, click the sparkle, and a small language model — downloaded once and cached by your browser — reads it and writes the title. No API call, no server, no data leaving your machine.

Speech-to-Text

Click the mic on any task description or reply and dictate it instead. Transcription runs on an in-browser Whisper model — your voice is processed on-device and never uploaded anywhere.

AgentRQ speech-to-text mic entry point
AgentRQ message send delay countdown with Send Now and Cancel

Message Send Delay

Give a workspace a countdown — 3s, 5s, 10s, 15s, 30s or 60s — and every chat message waits that long in the thread before it reaches the agent. Send Now delivers it early, Cancel pulls it back unsent and puts the exact text and attachments back in your composer. Off by default, per workspace.

Search & Keyboard Shortcuts

⌘K (Ctrl+K off macOS) opens a task finder that matches any word in a title or description, straight from the copy your device already saved — so it answers offline, and tells you how far it looked. Everything else is a bare letter: N for a new task, M and T to flip between a task's chat and its trajectory, ? for the list. Nothing to configure, and nothing to memorise.

AgentRQ task finder and keyboard shortcuts sheet

See the full list at agentrq.com/features.

🏛 Architecture

AgentRQ follows a decoupled service-oriented architecture:

Backend (Go / Fiber)

  • API Server: Fiber-based REST API for workspace and task management.
  • MCP Server: Integrated mcp-go SSE server that exposes tools and resources to AI models.
  • CoreMCP (Supervisor): A global MCP server that allows agents to manage all workspaces, tasks, and statistics across the entire platform.
  • Data Layer: GORM with SQLite for persistent, user-scoped storage.
  • Authentication: Google OAuth2 integration with JWT-based session management.
  • Event Bus: Internal pub/sub system for real-time SSE notifications.

Frontend (Vue.js 3 / Vite)

  • Modern UI: Tailored with Vue 3, Pinia, and Tailwind CSS.
  • Glassmorphism: A sleek, premium design language with smooth transitions and real-time updates.
  • Reactive State: Synchronized with the backend via SSE events.

Desktop (Electron)

  • Same application, native shell: the desktop app renders the same Vue components as the browser, so the two never diverge.
  • Native notifications: agent activity reaches you while the window is in the background, with a dock or taskbar badge.
  • Tray, global shortcut, deep links: Cmd/Ctrl+Shift+N from anywhere, and agentrq:// URLs that open the app at a specific task.
  • Auto-updating: checks in the background and installs on restart.

💻 Desktop App

AgentRQ has a desktop app for macOS, Windows and Linux. It is a client — it connects to whichever AgentRQ server you run.

On macOS and Linux, one command installs it — and updates it later:

curl -fsSL https://agentrq.com/install.sh | sh -s -- --quit

Or download the latest release →

Platform Download
macOS .dmg — Apple silicon and Intel
Windows .exe installer — x64 and arm64
Linux .AppImage or .deb — x64 and arm64

Builds are currently unsigned, so a hand-downloaded build warns on first launch on macOS and Windows, and macOS cannot auto-update until signing certificates are in place — the install command above is the way around both. Connecting to a server and troubleshooting are covered in the Desktop Guide.

Extending the desktop app

Extensions add pages, actions, keyboard shortcuts and scheduled work. They are ordinary Node modules, discovered from GitHub repositories carrying the agentrq-extension topic, and installed from the desktop app.

Extensions are desktop-only, and deliberately so. An extension is code somebody else wrote, running with the privileges of the process it is in. On a self-hosted server that would mean a stranger's code next to your database and your other users; on the desktop it runs on the machine of the person who chose to install it. The server never loads extension code.

What AgentRQ does enforce is everything it owns: which surfaces an extension can contribute to, and which MCP tools it may call against which workspaces — the extension never holds a credential, it asks, and the app attaches the token on the way out. That is a real boundary around your AgentRQ data. It is not a sandbox around your machine, and the install screen says so on every install.

Three worked examples live in examples/extensions/, from one that asks for no permissions at all to one that runs a daily digest across every workspace. See the Extensions Guide.

Driving AgentRQ from a browser agent

If your browser supports WebMCP, an AI agent you talk to there can use AgentRQ directly — list your workspaces, open a task, reply in it, build a workflow. Everything the interface can do is offered as a tool, including asking which page you are on, so "reply to this task" resolves to the task you have open.

The tools run in the page as you, with your session, so an agent gets exactly your permissions and nothing more, and they are withdrawn when you sign out. Nothing to install or configure; a browser without WebMCP simply sees no tools. See the WebMCP Guide.

⌨️ Agent slash commands

Agents connected through the ACP gateway advertise commands of their own — /init, /compact, /review, whatever they ship with. Type / in a task and they appear above the reply box, filtered as you type and chosen with the keyboard or the mouse. The list comes from the agent and follows it live, so it changes as the agent's context does. An agent that advertises none gets no menu and nothing changes. See the Slash Commands Guide.

🧠 Choosing the agent's model

Where an agent offers a choice of model, you can make it from the interface — on a workspace card, and on the form where a task is written, so the model is settled before the work starts rather than after. Choosing shows the new model straight away but marks it as asked-for until the agent itself confirms; if it refuses, or never answers, the interface goes back to what is actually running and says so.

The choice appears only where it would do something. An agent that reports no models — Claude Code connected directly, among others — shows none, and neither does an ACP gateway older than the release that learned to switch on request: it says which model it is on without claiming it can change it. Nothing to configure either way.

To run it from source:

make install       # dependencies for the whole repo
make desktop-dev   # run the desktop app against a local server
make desktop       # build installers into desktop/release/

🛠 Getting Started

Prerequisites

  • Go 1.21+
  • Node.js 18+ (with npm)
  • Google Cloud Console: An OAuth2 Client ID and Secret.

Configuration

  1. Create a _config/base.yaml (or development.yaml) in the backend directory.
  2. Fill in your Google OAuth2 credentials:
auth:
  google:
    client_id: "your-google-client-id"
    client_secret: "your-google-client-secret"

Running Locally

Use the provided Makefile to start the full stack:

# 1. Install all dependencies
make install

# 2. Start both Frontend and Backend
make dev

The frontend will be available at http://localhost:5173. For the desktop app, run make desktop-dev in another terminal — see the Desktop Guide.

Self-Hosting (Docker)

For running the production or development stack using the pre-built Docker image, see the Self-Hosting Setup Guide.

[!NOTE] Agents / AI Assistants: If you need to set up, configure, run, or diagnose a local self-hosted instance of AgentRQ using Docker, refer to SETUP.md for step-by-step instructions, Docker run commands, and environment variable configurations.

🤖 Claude Code & AI Integration

AgentRQ is designed for seamless integration as a Claude Channel. This allows your AI agents to see tasks assigned to them and respond directly within your Claude session.

Each workspace has its own MCP URL and token (visible in the workspace setup modal). In production, these follow the pattern https://WORKSPACE_ID.mcp.agentrq.com/.

Step 1 — .mcp.json

Create a .mcp.json file in your local project directory (the leading dot is required). Each project gets its own file so Claude instances stay isolated per workspace. Replace YOUR_MCP_URL below with the full URL shown in the setup modal (e.g. https://WORKSPACE_ID.mcp.agentrq.com/?token=TOKEN).

{
  "mcpServers": {
    "agentrq-WORKSPACE_ID": {
      "type": "http",
      "url": "YOUR_MCP_URL"
    }
  }
}

Step 2 — .claude/settings.local.json

Add a .claude/settings.local.json file in the same project directory to pre-approve the AgentRQ tools and avoid permission prompts on every action. The list below covers every tool the workspace exposes — drop any line you would rather be asked about:

{
  "permissions": {
    "allow": [
      "mcp__agentrq-WORKSPACE_ID__createTask",
      "mcp__agentrq-WORKSPACE_ID__updateTaskStatus",
      "mcp__agentrq-WORKSPACE_ID__reply",
      "mcp__agentrq-WORKSPACE_ID__downloadAttachment",
      "mcp__agentrq-WORKSPACE_ID__getWorkspace",
      "mcp__agentrq-WORKSPACE_ID__getTask",
      "mcp__agentrq-WORKSPACE_ID__publishEvent",
      "mcp__agentrq-WORKSPACE_ID__loadMemory",
      "mcp__agentrq-WORKSPACE_ID__saveMemory",
      "mcp__agentrq-WORKSPACE_ID__deleteMemory",
      "mcp__agentrq-WORKSPACE_ID__elicit"
    ]
  },
  "enableAllProjectMcpServers": true,
  "enabledMcpjsonServers": ["agentrq-WORKSPACE_ID"]
}

Step 3 — Start Claude

Once both files are in place, launch Claude Code from that project directory:

claude --dangerously-load-development-channels server:agentrq-WORKSPACE_ID

Tip: The workspace ID, full MCP URL (with token), and ready-to-paste config snippets are all available in the Setup modal inside each AgentRQ workspace.

Available MCP Tools

When connected, the AI agent has access to:

  • createTask: Assign a task to the human user (supports optional cron_schedule for recurring tasks).
  • updateTaskStatus: Move tasks through notstarted, ongoing, blocked, and completed.
  • reply: Send messages back to the AgentRQ dashboard in real-time.
  • getWorkspace: Fetch the workspace name, mission description, and task statistics.
  • getTask: Fetch a task — with no taskId it dequeues the next "not started" task assigned to the agent; with a taskId it returns that task. Pass includeConversation: true to also include the chat history (cursor-based pagination).
  • downloadAttachment: Retrieve an attachment by its ID.
  • publishEvent: Fire a named event so subscriber workspaces spawn their trigger tasks.
  • loadMemory: Read the workspace's notes — with no name it reads memory.md, the index of everything remembered here.
  • saveMemory: Write a note that outlives the task, so the next agent starts with it.
  • deleteMemory: Remove one of the workspace's notes.
  • elicit: Ask the human a question and block until they answer, either as a form or as a link to confirm.
  • Real-time Notifications: Agents receive notifications via the notifications/claude/channel protocol whenever a human interacts with their tasks.

🌉 ACP Gateway (Bridge for ACP Agents)

While Claude Code has native support for claude/notifications, other agents like Antigravity and Codex require a bridge to receive real-time task notifications from AgentRQ. The @agentrq/acp-gateway bridges the Agent Client Protocol (ACP) with MCP to enable this.

There is nothing to install — npx fetches the gateway, and the gateway fetches the agent you name.

Usage

  1. Ensure you have a .mcp.json in your project root.
  2. Log in to your agent once, then start the gateway from the same directory as .mcp.json:
# Using Antigravity
npx @agentrq/acp-gateway@latest --login --agent antigravity-acp --allow-unverified-agent
npx @agentrq/acp-gateway@latest --agent antigravity-acp --allow-unverified-agent
# Using Codex
npx @agentrq/acp-gateway@latest --login --agent codex-acp
npx @agentrq/acp-gateway@latest --agent codex-acp

Antigravity is published as a binary the registry carries no checksum for, so it needs --allow-unverified-agent on every command; Codex ships as an npm package and does not. Sign out again with --logout in place of --login.

The gateway will automatically:

  • Connect to your AgentRQ workspace via the URL in .mcp.json.
  • Spawn the agent subprocess and bridge standard I/O.
  • Forward task assignments, messages, and permission requests in real-time.

🌌 Codex (via the ACP Gateway)

OpenAI Codex connects through the same ACP Gateway as every other agent. The gateway resolves codex-acp from the ACP registry and runs it for you, so there is nothing to install and nothing to configure beyond the .mcp.json the gateway reads.

Earlier releases used a separate @agentrq/codex-gateway package and a .codex/config.toml. Neither is needed now.

Setup

  1. Ensure you have a .mcp.json in your project root.
  2. Log in — Codex will not open a session until you have. The first run fetches the agent, then hands you its login:
npx @agentrq/acp-gateway@latest --login --agent codex-acp
  1. Start the bridge. Run it from the same directory as .mcp.json:
npx @agentrq/acp-gateway@latest --agent codex-acp

Sign out again with --logout in place of --login. The registry publishes Codex as an npm package, so npx fetches it on first use and keeps it current — unlike the binary agents, it needs no --allow-unverified-agent.

👑 Supervisor (CoreMCP)

While individual workspaces provide a scoped view for specific projects, the Supervisor (CoreMCP) is a global MCP server that grants an agent bird's-eye view and management capabilities across your entire AgentRQ account.

The Supervisor is accessible at https://mcp.agentrq.com/mcp. It uses OAuth2 for secure authentication, allowing modern AI tools (like Claude Code) to connect securely.

Why use the Supervisor?

  • Multi-Workspace Management: List, create, and update workspaces.
  • Global Task View: Fetch tasks from all workspaces in a single call (listAllTasks).
  • Administrative Control: Manage task assignments, status, and priorities globally.
  • Unified Statistics: Access detailed statistics and health metrics for any workspace.

Available Supervisor Tools

The Supervisor provides a comprehensive suite of tools for global management, requiring workspaceId parameters where applicable:

Workspace Management

  • listWorkspaces: Overview of all active and archived workspaces.
  • createWorkspace: Bootstrap new project environments.
  • getWorkspace: Retrieve details of a specific workspace by ID.
  • updateWorkspace: Modify workspace settings and metadata.
  • getWorkspaceStats: Retrieve high-level analytics and performance data for a workspace.

Task Management

  • listAllTasks: Search and filter tasks across the entire platform.
  • listTasks: List tasks within a specific workspace.
  • createTask: Create a new task in a specific workspace.
  • getTask: Retrieve details of a specific task.
  • updateTaskStatus: Change a task's status.
  • updateTaskOrder: Reorder a task in the list.
  • updateTaskAssignee: Change the assignee of a task.
  • updateTaskAllowAll: Toggle allow_all_commands permission for a task.
  • updateScheduledTask: Modify a scheduled/cron task.
  • deleteTask: Delete a task with its messages and attachments — the way to retire a schedule rather than leave it running.

Communication & Files

  • replyToTask: Post a message to a task's chat thread.
  • respondToTask: Submit an allow/deny verdict for a permission request.
  • getAttachment: Retrieve data as base64 and metadata for a specific attachment.

Workspace Memory

  • listMemories: List a workspace's memories — name, size and when each changed.
  • getMemory: Read one memory in full. MEMORY.md is the index the others hang off.

Events & Triggers An event is a named signal a workspace publishes; a trigger creates a task somewhere when it fires. Publishing stays agent-side (publishEvent on the per-workspace server) — the supervisor builds the wiring, the workers fire it.

  • listEvents, createEvent, getEvent, updateEvent, deleteEvent: define the signals.
  • createEventTrigger, listEventTriggers, getEventTrigger, updateEventTrigger, deleteEventTrigger: decide what each one causes.
  • listEventTasks: see the tasks an event has spawned.

Workflows The graph those pieces add up to: a start event, and the steps that react to it and to each other.

  • listWorkflows, createWorkflow, getWorkflow, updateWorkflow, deleteWorkflow: the graph itself.
  • createWorkflowStep, listWorkflowSteps, deleteWorkflowStep: its nodes, one at a time.
  • getWorkflowText, replaceWorkflowFromText: the whole graph as the indented document the UI's text mode edits — the declarative way to write one.
  • listWorkflowTasks: see the tasks a workflow has spawned.

Connecting to Supervisor (Claude Code)

Since the Supervisor uses OAuth2, you can connect it using the following configuration in your ~/.mcp.json:

{
  "mcpServers": {
    "agentrq": {
      "type": "http",
      "url": "https://mcp.agentrq.com/mcp"
    }
  }
}

When you first run Claude with this server, it will provide a link to authenticate via your browser.

🧩 Official Extensions

AgentRQ provides official extensions for major AI agent CLI tools to simplify setup and integration with its supervisor MCP. The sub agents MCPs should use their own workspace specific MCP server URLs.

🍊 Claude Code

Two plugins for Claude Code are published from this repository's own marketplace, each with a skill and pre-configured MCP access:

  • agentrq — the supervisor, talking to the account-level MCP server so one agent can orchestrate work across every workspace you own.
  • agentrq-workspace — the workspace agent, connected to a single workspace's MCP server to work its queue.

Installation:

/plugin marketplace add https://github.com/agentrq/agentrq
/plugin install agentrq@agentrq
/plugin install agentrq-workspace@agentrq

Previously these lived in a separate agentrq-claude-extension repository. The marketplace URL is now this repository; if you added the old one, re-add the marketplace at the URL above.

♊ Gemini CLI

The Gemini CLI extension allows you to manage AgentRQ workspaces and tasks directly from your terminal using Google's Gemini models.

Tip: To enable real-time task notifications with Gemini, use the ACP Gateway.

Installation:

gemini extensions install https://github.com/agentrq/agentrq-gemini-extension

🐋 DeepSeek Harness

The @agentrq/dsh-plugin-agentrq bundle brings AgentRQ into DeepSeek Harness. It bridges the workspace's tools to the model as mcp__agentrq__* and holds a supervised workspace session, so tasks assigned to the agent and the human's replies arrive over the MCP channel and land in the live session — no polling, and no leaving the harness to work the queue.

Installation:

npx @deepseek-ai/dsh plugin --profile agentrq-<workspace> add @agentrq/dsh-plugin-agentrq
# pin this workspace's MCP URL in ~/.dsh/profiles/agentrq-<workspace>/cordis.patch.yml
npx @deepseek-ai/dsh --profile agentrq-<workspace>

Copy the filled-in commands and config block from Workspace Settings → Setup → DeepSeek Harness. A dsh profile serves one workspace and carries its own endpoint, so run one profile per workspace and switching workspaces is switching profiles. Delivery, startup catch-up, and reconnect behavior are configurable; see the plugin README.

🔌 Integrations

Slack Integration

AgentRQ supports multi-tenant Slack integration for real-time task creation, thread replies sync, and agent permission requests:

🙌 Contributing

Bug reports go in a GitHub issue and feature or architecture ideas go in a short written proposal — see CONTRIBUTING.md.

🤝 Credits

  • AgentRQ — The official Agent-Human collaboration platform.
  • HasMCP — Bridge the Gap Between APIs and Agents.

📝 License

Apache-2.0

Frequently asked questions

Is agentrq free to use?

agentrq is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does agentrq do?

AgentRQ: Human-in-loop realtime conversational task manager for AI Agents. Self-hosted! Control your own agents from wherever you want Mobile, Web, Desktop. Des

What is agentrq written in?

agentrq is primarily written in Go. Its source is publicly available at https://github.com/agentrq/agentrq, and it has 1,176 GitHub stars.