Fix hostnames: opencode on orca.fritz.box, claude-code on noether.fritz.box
This commit is contained in:
@@ -16,9 +16,9 @@ This is **multi-host, multi-container** — not single-host. Each agent runs in
|
||||
▼ ▼ ▼
|
||||
┌──────────────┐ ┌──────────────────┐ ┌──────────────────┐
|
||||
│ pi agent │ │ opencode │ │ claude-code │
|
||||
│ (pica) │ │ (local or cont.) │ │ (local or cont.) │
|
||||
│ Codex CLI │ │ OpenCode CLI │ │ Claude Code CLI │
|
||||
│ --print │ │ run / TUI │ │ exec / TUI │
|
||||
│ (pica) │ │ (orca.fritz.box) │ │ (noether.fritz │
|
||||
│ Codex CLI │ │ OpenCode CLI │ │ .box) │
|
||||
│ --print │ │ run / TUI │ │ Claude Code CLI │
|
||||
│ NPU inference │ │ provider-agnostic│ │ Anthropic Claude │
|
||||
└──────┬───────┘ └────────┬─────────┘ └────────┬─────────┘
|
||||
│ │ │
|
||||
@@ -29,19 +29,20 @@ This is **multi-host, multi-container** — not single-host. Each agent runs in
|
||||
│ memory server │
|
||||
│ (memory.fritz │
|
||||
│ .box:8080/sse) │
|
||||
│ (boltzmann) │
|
||||
└─────────────────┘
|
||||
```
|
||||
|
||||
Each agent is independent — separate process, separate container, separate config. Hermes invokes them via the appropriate transport (MCP shell, lmcp, SSH, direct CLI).
|
||||
Each agent is independent — separate host, separate Incus container, separate config. Hermes invokes them via SSH or lmcp:
|
||||
|
||||
## Agents
|
||||
|
||||
| Agent | CLI | Invocation | Transport | Location |
|
||||
|-------|-----|------------|-----------|----------|
|
||||
| **Hermes** | `hermes` | n/a (orchestrator) | — | hertz (bare metal) |
|
||||
| **pi** | `pi --print` | `pi_exec` MCP tool, SSH+nohup | MCP / SSH | pica (RPi5, container) |
|
||||
| **opencode** | `opencode run` | direct terminal or bg pty | local terminal | any container |
|
||||
| **claude-code** | `claude` | direct terminal or bg pty | local terminal | any container |
|
||||
| **Hermes** | `hermes` | n/a (orchestrator) | — | hertz |
|
||||
| **pi** | `pi --print` | `pi_exec` MCP tool, SSH+nohup | MCP / SSH | pica (Incus) |
|
||||
| **opencode** | `opencode run` | SSH / lmcp / direct terminal | SSH / MCP | orca.fritz.box (Incus) |
|
||||
| **claude-code** | `claude` | SSH / lmcp / direct terminal | SSH / MCP | noether.fritz.box (Incus) |
|
||||
|
||||
## Invocation Patterns
|
||||
|
||||
@@ -62,13 +63,23 @@ ssh mfritsche@pica "pi --print --provider hossenfelder --model qwen3.5-9b-npu 'p
|
||||
### One-Shot (opencode)
|
||||
|
||||
```
|
||||
opencode run 'Implement retry logic for API calls' --model openrouter/anthropic/claude-sonnet-4
|
||||
# Via SSH on orca
|
||||
ssh mfritsche@orca "opencode run 'Implement retry logic for API calls' --model openrouter/anthropic/claude-sonnet-4"
|
||||
|
||||
# Or via lmcp on orca
|
||||
curl -s http://orca.fritz.box:8080/mcp -H "Authorization: Bearer <token>" \
|
||||
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"shell","arguments":{"command":"opencode run '...'","timeout":120}}}'
|
||||
```
|
||||
|
||||
### One-Shot (claude-code)
|
||||
|
||||
```
|
||||
claude execute -p 'Refactor the auth module and add tests' --model claude-sonnet-4
|
||||
# Via SSH on noether
|
||||
ssh mfritsche@noether "claude execute -p 'Refactor the auth module and add tests'"
|
||||
|
||||
# Or via lmcp on noether
|
||||
curl -s http://noether.fritz.box:8080/mcp -H "Authorization: Bearer <token>" \
|
||||
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"shell","arguments":{"command":"claude execute -p '...'","timeout":120}}}'
|
||||
```
|
||||
|
||||
### Background / Long-Running Tasks
|
||||
@@ -77,12 +88,15 @@ claude execute -p 'Refactor the auth module and add tests' --model claude-sonnet
|
||||
# pi: SSH + nohup with lock file, timeout per file
|
||||
# See references/batch-pi-processing.md for full pattern
|
||||
|
||||
# opencode/claude-code: terminal background + pty
|
||||
terminal(command="opencode", background=true, pty=true)
|
||||
# then: process(action="submit", data="prompt")
|
||||
# opencode on orca: SSH background
|
||||
ssh -f mfritsche@orca "opencode run 'Long task' > /tmp/opencode.log 2>&1"
|
||||
|
||||
terminal(command="claude", background=true, pty=true)
|
||||
# then: process(action="submit", data="prompt")
|
||||
# claude-code on noether: SSH background
|
||||
ssh -f mfritsche@noether "claude execute -p 'Long task' > /tmp/claude.log 2>&1"
|
||||
|
||||
# Or via lmcp with shell_bg on either host
|
||||
curl -s http://orca.fritz.box:8080/mcp -H "Authorization: Bearer <token>" \
|
||||
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"shell_bg","arguments":{"command":"opencode run '...'","log":"/tmp/opencode-task.log"}}}'
|
||||
```
|
||||
|
||||
## Shared Memory Patterns
|
||||
@@ -118,18 +132,18 @@ Simple, universal. Used in the batch-pi-processing pattern.
|
||||
|
||||
YES — this is designed for separate hosts/containers. Each agent is independently deployed:
|
||||
|
||||
| Host | Container? | Agent | Notes |
|
||||
|------|-----------|-------|-------|
|
||||
| hertz | bare metal | Hermes | Orchestrator, MCP client |
|
||||
| pica | Incus | pi agent | RPi5, RK3588 NPU, qwen3.5-9b-npu |
|
||||
| boltzmann | Incus | Stash / memory | Postgres, pgvector |
|
||||
| (any) | Incus or Docker | opencode | Provider-agnostic |
|
||||
| (any) | Incus or Docker | claude-code | Anthropic Claude |
|
||||
|| Host | IP / FQDN | Container? | Agent | Notes |
|
||||
||------|-----------|-----------|-------|-------|
|
||||
|| hertz | hertz.fritz.box | bare metal | Hermes | Orchestrator, MCP client |
|
||||
|| pica | pica.fritz.box | Incus | pi agent | RPi5, RK3588 NPU, qwen3.5-9b-npu |
|
||||
|| orca | orca.fritz.box | Incus | opencode | OpenCode CLI |
|
||||
|| noether | noether.fritz.box | Incus | claude-code | Claude Code CLI |
|
||||
|| boltzmann | boltzmann.fritz.box | Incus | Stash / memory | Postgres, pgvector |
|
||||
|
||||
**No shared filesystem required.** Communication is via:
|
||||
- MCP (HTTP/SSE) — stash, pi_exec, file tools
|
||||
- SSH — fallback for pi on pica
|
||||
- Hermes terminal — opencode and claude-code on any reachable host
|
||||
- **SSH** — primary transport to orca, noether, and pica
|
||||
- **lmcp** — HTTP MCP bridge running on each container (where set up)
|
||||
- **MCP (SSE)** — stash memory server on boltzmann
|
||||
|
||||
## Recommendations
|
||||
|
||||
|
||||
Reference in New Issue
Block a user