Nemo — the client
A desktop client for one person. Chat, cowork on documents, code with a panel of agents. Every model call goes through CoeOS, and every answer tells you which model wrote it.
Nemo is the client of CoeOS. It runs on macOS, Apple Silicon only, and talks to one of two backends: a CoeOS box on your network, or an OdyssAI-X engine directly. Source and releases: Odyssai-eu/coeos (MIT).
Install
Section titled “Install”Nemo is installed from the .dmg only. There is no Intel, Windows or Linux build, and no App Store or Homebrew distribution.
- Download the latest
nemo-mac-arm64.dmgfrom the Releases page. - Open it and drag Nemo to Applications. The app is signed with a Developer ID and notarized by Apple: it opens without a Gatekeeper warning.
- On first launch macOS asks for Local Network access. Nemo needs it to find your box or engine. Allow it.
- Open Settings → Providers and point Nemo at your CoeOS box: a name (how the box is labelled in the model picker), its URL, and an API key if the box requires one. Test queries the box’s
/v1/modelsand shows what it publishes before you save.
Leave the URL empty and Nemo looks for a backend on its own: an OdyssAI-X engine (port 8000) or a CoeOS box (port 4600) on the LAN, a provisioned pairing file, or the CODEOS_ENGINE_URL environment variable. Discovery only fills an empty slot: it never replaces a box you already use, and Nemo notifies you when it adopts one. Nothing is hardcoded in the binary.
Requirements: macOS on Apple Silicon (M1 or later), and one of the two backends. Nothing else.
More engines
Section titled “More engines”In the same Providers tab, Add an engine declares another backend by name, URL and key: an OdyssAI-X engine, a second box, or any OpenAI-compatible server. Nemo reads the models each one publishes on /v1/models at every start; nothing is typed by hand. The model picker then lists every engine’s catalogue next to the box’s.
Provider changes apply after a restart. Nemo shows a Restart required banner until you do.
No auto-update
Section titled “No auto-update”Nemo does not update itself. Each version is a new .dmg on the Releases page. The version and build number are shown at the bottom of the Settings column.
The three modes
Section titled “The three modes”| Mode | What it does |
|---|---|
| Nemo | The everyday assistant. Chat with streaming and visible reasoning, presets and saved prompts, a personal memory kept in a local vault. The assistant understands the request, answers directly when it is simple, and hands the rest to specialised agents — explore, writer, ops, document parser and producer, memory, guardian — then synthesises. |
| Cowork | Work with the model on a document. A gated pipeline — compose, review, validate — where each stage stops for your go-ahead, and a sentinel agent watches what goes out. |
| Code | The coding mode inherited from CodeOS. An orchestrator plans the work into a task file, waits for your GO, then dispatches each task to the agent of the right role: a three-mandate decision panel (direct, alternative, sceptic), an adversarial plan grill by a different model family, an executor, a reviewer, a debugger and an explore agent. The orchestrator never writes code itself. |
Across all modes
Section titled “Across all modes”- Routing you can see. The model picker shows the box and every declared engine; each answer names the model that served it.
- Memory. A personal memory in a local vault — Markdown files, Obsidian-compatible,
~/.nemo/memoryby default, importable from an existing vault. Its index is injected at startup. Project and company corpora are read through an optional RAG server when you configure one. - Guardian agent. Content you mark confidential is handled by a dedicated guardian agent rather than the general assistant. The Guardian detection sidecar is a separate service; wiring it into Nemo is open work.
- Documents in and out. PDF and Office documents are parsed by the parser agent and produced by the producer agent, through a Docling server when one is configured.
- MCP. Nemo is a native MCP client. Optional RAG and Docling servers are configured by environment (
NEMO_RAG_MCP_URL,NEMO_DOCLING_MCP_URL) and stay off until you set them; nothing is baked in. - Secrets. API keys are stored in a file readable by your user only, and redacted from diagnostics.
Build from source
Section titled “Build from source”bun installcd packages/desktop && bun run dev # development app ("Nemo Dev")A signed, notarized release build needs a Developer ID certificate and an App Store Connect key on the build machine; neither is in the repository.
Built on opencode
Section titled “Built on opencode”Nemo started as a fork of opencode (MIT). The agent runtime, the desktop shell and the tool plumbing are theirs; the modes, agents, routing, guardian and memory are ours. Nemo has diverged far enough that upstream opencode releases are not merged. If you want a coding app that keeps following opencode, use CodeOS: a sharpened, dedicated version for coding, tailored with our agentic workflow, where separate models review and validate the plan and the code.
Troubleshooting
Section titled “Troubleshooting”| Symptom | Cause | Fix |
|---|---|---|
| The model picker is empty | No backend reachable | Settings → Providers → Test the box URL; check that the box or engine answers GET /v1/models from this Mac |
| Not connected in Providers after a fresh install | Local Network access was refused | System Settings → Privacy & Security → Local Network → allow Nemo, then restart it |
| A provider change did nothing | Changes apply at restart | Quit and reopen Nemo when the Restart required banner appears |
| An engine shows no models | The engine was asleep at start | Nemo caches the last catalogue per engine; restart once the engine is up |
Read next
Section titled “Read next”- CoeOS box — the router — the backend Nemo is made for.
- What CoeOS is — how a request flows from Nemo to a model.
- Guardian — the confidential-content detector.
- OdyssAI-X overview — the engine that serves the local models.