diff --git a/CLI_AND_DAEMON.md b/CLI_AND_DAEMON.md index 2c6eafc8c..783153b39 100644 --- a/CLI_AND_DAEMON.md +++ b/CLI_AND_DAEMON.md @@ -135,6 +135,9 @@ The daemon auto-detects these AI CLIs on your PATH: |-----|---------|-------------| | [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | `claude` | Anthropic's coding agent | | [Codex](https://github.com/openai/codex) | `codex` | OpenAI's coding agent | +| OpenCode | `opencode` | Open-source coding agent | +| OpenClaw | `openclaw` | Open-source coding agent | +| Hermes | `hermes` | Nous Research coding agent | You need at least one installed. The daemon registers each detected CLI as an available runtime. @@ -169,6 +172,12 @@ Agent-specific overrides: | `MULTICA_CLAUDE_MODEL` | Override the Claude model used | | `MULTICA_CODEX_PATH` | Custom path to the `codex` binary | | `MULTICA_CODEX_MODEL` | Override the Codex model used | +| `MULTICA_OPENCODE_PATH` | Custom path to the `opencode` binary | +| `MULTICA_OPENCODE_MODEL` | Override the OpenCode model used | +| `MULTICA_OPENCLAW_PATH` | Custom path to the `openclaw` binary | +| `MULTICA_OPENCLAW_MODEL` | Override the OpenClaw model used | +| `MULTICA_HERMES_PATH` | Custom path to the `hermes` binary | +| `MULTICA_HERMES_MODEL` | Override the Hermes model used | ### Self-Hosted Server diff --git a/CLI_INSTALL.md b/CLI_INSTALL.md index 213006f5d..6bb8a3718 100644 --- a/CLI_INSTALL.md +++ b/CLI_INSTALL.md @@ -136,12 +136,12 @@ Wait 3 seconds, then verify: multica daemon status ``` -Expected output should show `running` status with detected agents (e.g. `claude`, `codex`). +Expected output should show `running` status with detected agents (e.g. `claude`, `codex`, `opencode`, `openclaw`, `hermes`). **If daemon fails to start:** - Check logs: `multica daemon logs` - If a port conflict occurs, the daemon may already be running under a different profile. -- If no agents are detected, ensure at least one AI CLI (`claude` or `codex`) is installed and on the `$PATH`. +- If no agents are detected, ensure at least one AI CLI (`claude`, `codex`, `opencode`, `openclaw`, or `hermes`) is installed and on the `$PATH`. --- @@ -155,12 +155,12 @@ multica daemon status Confirm: 1. Status is `running` -2. At least one agent is listed (e.g. `claude`, `codex`) +2. At least one agent is listed (e.g. `claude`, `codex`, `opencode`, `openclaw`, or `hermes`) 3. At least one workspace is being watched If the agents list is empty, tell the user: -> "The Multica daemon is running but no AI agent CLIs were detected. Please install at least one: [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (`claude`) or [Codex](https://github.com/openai/codex) (`codex`), then restart the daemon with `multica daemon stop && multica daemon start`." +> "The Multica daemon is running but no AI agent CLIs were detected. Please install at least one supported CLI (`claude`, `codex`, `opencode`, `openclaw`, or `hermes`), then restart the daemon with `multica daemon stop && multica daemon start`." --- diff --git a/SELF_HOSTING.md b/SELF_HOSTING.md index bc7d08c2a..b7e1fc84a 100644 --- a/SELF_HOSTING.md +++ b/SELF_HOSTING.md @@ -71,7 +71,8 @@ Each team member who wants to run AI agents locally needs to: ### a) Install the CLI and an AI agent ```bash -brew install multica-ai/tap/multica +brew tap multica-ai/tap +brew install multica ``` You also need at least one AI agent CLI installed: @@ -79,6 +80,7 @@ You also need at least one AI agent CLI installed: - [Codex](https://github.com/openai/codex) (`codex` on PATH) - [OpenClaw](https://github.com/openclaw/openclaw) (`openclaw` on PATH) - [OpenCode](https://github.com/anomalyco/opencode) (`opencode` on PATH) +- [Hermes](https://github.com/NousResearch/hermes) (`hermes` on PATH) ### b) One-command setup diff --git a/SELF_HOSTING_ADVANCED.md b/SELF_HOSTING_ADVANCED.md index a4577edaf..f32df08d5 100644 --- a/SELF_HOSTING_ADVANCED.md +++ b/SELF_HOSTING_ADVANCED.md @@ -66,6 +66,21 @@ These are configured on each user's machine, not on the server: | `MULTICA_DAEMON_POLL_INTERVAL` | `3s` | How often the daemon polls for tasks | | `MULTICA_DAEMON_HEARTBEAT_INTERVAL` | `15s` | Heartbeat frequency | +Agent-specific overrides: + +| Variable | Description | +|----------|-------------| +| `MULTICA_CLAUDE_PATH` | Custom path to the `claude` binary | +| `MULTICA_CLAUDE_MODEL` | Override the Claude model used | +| `MULTICA_CODEX_PATH` | Custom path to the `codex` binary | +| `MULTICA_CODEX_MODEL` | Override the Codex model used | +| `MULTICA_OPENCODE_PATH` | Custom path to the `opencode` binary | +| `MULTICA_OPENCODE_MODEL` | Override the OpenCode model used | +| `MULTICA_OPENCLAW_PATH` | Custom path to the `openclaw` binary | +| `MULTICA_OPENCLAW_MODEL` | Override the OpenClaw model used | +| `MULTICA_HERMES_PATH` | Custom path to the `hermes` binary | +| `MULTICA_HERMES_MODEL` | Override the Hermes model used | + ## Database Setup Multica requires PostgreSQL 17 with the pgvector extension. diff --git a/apps/docs/content/docs/cli/installation.mdx b/apps/docs/content/docs/cli/installation.mdx index 358e5856f..12e632ca2 100644 --- a/apps/docs/content/docs/cli/installation.mdx +++ b/apps/docs/content/docs/cli/installation.mdx @@ -76,12 +76,15 @@ multica daemon status Confirm: 1. Status is `running` -2. At least one agent is listed (e.g. `claude`, `codex`) +2. At least one agent is listed (e.g. `claude`, `codex`, `opencode`, `openclaw`, or `hermes`) 3. At least one workspace is being watched -If the agents list is empty, install at least one AI agent CLI: +If the agents list is empty, install at least one supported AI agent CLI: - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (`claude`) - [Codex](https://github.com/openai/codex) (`codex`) +- OpenCode (`opencode`) +- OpenClaw (`openclaw`) +- Hermes (`hermes`) Then restart the daemon: diff --git a/apps/docs/content/docs/cli/reference.mdx b/apps/docs/content/docs/cli/reference.mdx index 2e59aed50..789968f26 100644 --- a/apps/docs/content/docs/cli/reference.mdx +++ b/apps/docs/content/docs/cli/reference.mdx @@ -88,6 +88,9 @@ The daemon auto-detects these AI CLIs on your PATH: |-----|---------|-------------| | [Claude Code](https://docs.anthropic.com/en/docs/claude-code) | `claude` | Anthropic's coding agent | | [Codex](https://github.com/openai/codex) | `codex` | OpenAI's coding agent | +| OpenCode | `opencode` | Open-source coding agent | +| OpenClaw | `openclaw` | Open-source coding agent | +| Hermes | `hermes` | Nous Research coding agent | You need at least one installed. The daemon registers each detected CLI as an available runtime. @@ -122,6 +125,12 @@ Agent-specific overrides: | `MULTICA_CLAUDE_MODEL` | Override the Claude model used | | `MULTICA_CODEX_PATH` | Custom path to the `codex` binary | | `MULTICA_CODEX_MODEL` | Override the Codex model used | +| `MULTICA_OPENCODE_PATH` | Custom path to the `opencode` binary | +| `MULTICA_OPENCODE_MODEL` | Override the OpenCode model used | +| `MULTICA_OPENCLAW_PATH` | Custom path to the `openclaw` binary | +| `MULTICA_OPENCLAW_MODEL` | Override the OpenClaw model used | +| `MULTICA_HERMES_PATH` | Custom path to the `hermes` binary | +| `MULTICA_HERMES_MODEL` | Override the Hermes model used | ### Self-Hosted Server diff --git a/apps/docs/content/docs/getting-started/self-hosting.mdx b/apps/docs/content/docs/getting-started/self-hosting.mdx index 75a0e6645..d4cf3df1c 100644 --- a/apps/docs/content/docs/getting-started/self-hosting.mdx +++ b/apps/docs/content/docs/getting-started/self-hosting.mdx @@ -72,12 +72,16 @@ The daemon runs on your local machine (not inside Docker). It detects installed ### a) Install the CLI and an AI agent ```bash -brew install multica-ai/tap/multica +brew tap multica-ai/tap +brew install multica ``` You also need at least one AI agent CLI: - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) (`claude` on PATH) - [Codex](https://github.com/openai/codex) (`codex` on PATH) +- OpenCode (`opencode` on PATH) +- OpenClaw (`openclaw` on PATH) +- Hermes (`hermes` on PATH) ### b) One-command setup @@ -211,6 +215,21 @@ These are configured on each user's machine, not on the server: | `MULTICA_DAEMON_POLL_INTERVAL` | `3s` | How often the daemon polls for tasks | | `MULTICA_DAEMON_HEARTBEAT_INTERVAL` | `15s` | Heartbeat frequency | +Agent-specific overrides: + +| Variable | Description | +|----------|-------------| +| `MULTICA_CLAUDE_PATH` | Custom path to the `claude` binary | +| `MULTICA_CLAUDE_MODEL` | Override the Claude model used | +| `MULTICA_CODEX_PATH` | Custom path to the `codex` binary | +| `MULTICA_CODEX_MODEL` | Override the Codex model used | +| `MULTICA_OPENCODE_PATH` | Custom path to the `opencode` binary | +| `MULTICA_OPENCODE_MODEL` | Override the OpenCode model used | +| `MULTICA_OPENCLAW_PATH` | Custom path to the `openclaw` binary | +| `MULTICA_OPENCLAW_MODEL` | Override the OpenClaw model used | +| `MULTICA_HERMES_PATH` | Custom path to the `hermes` binary | +| `MULTICA_HERMES_MODEL` | Override the Hermes model used | + ## Database Setup Multica requires PostgreSQL 17 with the pgvector extension. diff --git a/packages/views/issues/components/issues-page.tsx b/packages/views/issues/components/issues-page.tsx index 0cf17dc6d..db12926a2 100644 --- a/packages/views/issues/components/issues-page.tsx +++ b/packages/views/issues/components/issues-page.tsx @@ -38,7 +38,7 @@ export function IssuesPage() { const includeNoProject = useIssueViewStore((s) => s.includeNoProject); useEffect(() => { - initFilterWorkspaceSync(); + initFilterWorkspaceSync((cb) => useWorkspaceStore.subscribe((s) => cb(s.workspace?.id))); }, []); useEffect(() => {