Public source preview. Run from source with Node 24+. Simote desktop installers and automatic updates are not released yet. Simjecture is optional and disabled by default.
Simote is a local-first control plane for teams of AI agents that run scientific work across one or more Linux CPU/GPU machines. Each bot can use a different agentic AI driver, connected apps, and named compute machine while coordinating with the rest of the team through ordinary chats and rooms.
This project is a fork of OpenMausBot. It retains compatible internal data, environment, and protocol identifiers where changing them would break existing users, but the product and scientific-compute layer are Simote.
- Provider-neutral remote compute. Codex, Claude, Grok and other ACP engines, Pi, and the DeepSeek API agent can all drive the same SSH compute tools.
- Local authentication boundary. Agent CLI OAuth/login state, Composio OAuth sessions, API keys, and SSH credentials stay on the Simote host. A compute worker does not receive or install an agent login.
- Multi-machine teams. Assign named machines per bot. Multiple bots may share a host, but workspaces, jobs, logs, and Simjecture campaigns are scoped per bot.
- Cross-machine coordination. Direct chats and rooms expose the same
remote tools, and bots can use
list_bots,ask_bot, anddelegate_botto coordinate regardless of where their compute runs. - Simjecture tools. A remote worker can expose all 22 official Simjecture campaign tools through the Simote MCP bridge.
- Scientific bootstrap profiles. An idempotent script detects CPU/GPU and prepares minimal, Python, GPU, WarpX, or Simjecture environments without replacing the host GPU driver.
flowchart LR
UI[Simote UI] --> H[Local Simote harness]
H --> C[Codex CLI]
H --> A[Claude CLI]
H --> G[Grok / ACP / Pi]
H --> D[DeepSeek API]
H --> O[Composio OAuth tools]
C & A & G --> M[credential-free Simote MCP bridge]
D --> R[in-process remote tool loop]
M & R --> S1[SSH machine A]
M & R --> S2[SSH machine B]
S1 & S2 --> SJ[Simjecture / scientific environments]
The harness listens on loopback, owns provider processes and approvals, and is
the only component holding SSH credentials. Remote commands pass a hard-deny
safety classifier before execution. New files live under
/root/simote-workspace/bots/<bot-id>, and foreign tmux sessions remain
read-only.
Requirements: Node 24+, pnpm, and at least one supported local agent CLI/login or API provider.
git clone https://github.com/tomzhu0225/simote.git
cd simote
pnpm install
pnpm dev:server # harness on 127.0.0.1:8799
pnpm dev # UI on 127.0.0.1:5199For a browser-only production-like run:
pnpm webThe upstream desktop shell is still present for macOS, Windows, and Ubuntu:
pnpm dev:desktopExisting data remains in ~/.openmausbot for migration compatibility. Existing
OMB_* variables and the openmausbot:// desktop protocol are also retained
until a versioned migration is designed; they are implementation identifiers,
not the product name.
Install and log in to Codex, Claude, Grok, or another supported ACP/CLI engine on the Simote host, then select that engine for a bot. Simote launches official provider CLIs and reuses their existing local login state. DeepSeek remains an API-key-backed option.
Connected services such as GitHub, Gmail, Slack, and Notion use Composio Sessions. Complete OAuth in App Settings → Connections; provider tokens are managed by Composio and are not copied to a compute worker.
The existing connection form configures one password-SSH machine. A named
fleet can be supplied through SIMOTE_RESEARCH_MACHINES_JSON, after which each
bot gets a machine selector. Host-key pinning accepts SHA-256 hex or the normal
OpenSSH SHA256:... fingerprint and fails closed on a mismatch.
For local development, copy .env.example to the gitignored .env.local,
fill the SIMOTE_DEV_SSH_* fields, and run pnpm dev:server:research. The
launcher creates one named dev_gpu machine in process without printing or
copying its password into provider environments.
See the remote scientific-compute guide for the fleet schema, security boundary, multi-bot behavior, and network-restricted setup.
bash scripts/bootstrap-science.sh --dry-run --profile simjecture
sudo bash scripts/bootstrap-science.sh --profile pythonProfiles are cumulative where applicable:
| Profile | Purpose |
|---|---|
minimal |
system build and process tools |
python |
general Python scientific environment |
gpu |
Python plus detected NVIDIA GPU support |
warpx |
WarpX source/dependencies and explicit backend build commands |
simjecture |
Python plus Simjecture's campaign tool adapter |
For private source or a machine with restricted GitHub access, stage a reviewed
checkout and pass --simjecture-source /path/to/source. Package-index mirrors
can be selected through the normal uv/pip environment variables.
Completed WarpX builds can be packaged with a compatibility manifest and installed on matching workers instead of recompiled. The remote-compute guide describes the legacy/modern CUDA artifact lanes and the cache fallback.
pnpm typecheck
pnpm test
pnpm buildThe Simjecture adapter is developed in the sibling simjecture repository and
has its own Python tests.
Simjecture integration is optional and off by default. Enable Simjecture campaigns in Settings → General → Experimental features to reveal the campaign workspace and agent tools. Standalone Simote needs no Simjecture install.
With matching Simote and Simjecture checkouts installed, a campaign-owner bot
can use simjecture_assign_role to start a fresh Codex or Grok task as a
Falsifier, Repair Scientist, Blocker Resolver, or Lead Scientist. Assign bots
from the same team section to the same SSH compute machine. The workers share
the owner's campaign while Simjecture enforces each assignment's claim scope
and operation budget.
Workers finish with simjecture_handoff. The owner or lead can request a fresh
independent review with simjecture_adjudicate; direct model-authored verdict
submission is not exposed. Named tasks show agent activity, and campaign
snapshots include durable role assignments and handoffs. Reopen the same task
after a restart to continue; repeating an assignment does not dispatch it twice.
See the sibling checkout's docs/how-to/simote-agent-roles.md for the full
workflow and headless supervisor interface. Simote's optional workspace shows
the hypothesis graph, linked evidence, jobs, role tasks, and final report, with
controls for assignments and independent review. See
the workspace guide for setup and limits.
The scientific workspace removes upstream product analytics, voice calls/synthesis, and desktop demonstration recording. See feature pruning for retained workflows and the configuration migration.
Apache License 2.0. Simote is derived from OpenMausBot by Milind Soni and its contributors; preserved notices are in NOTICE. Bundled third-party components retain their own licenses and attribution.
Simote is not affiliated with xAI, Anthropic, OpenAI, Composio, RunPod, CompShare, or the WarpX project. Provider and product names belong to their respective owners.