Multi-agent coding workspace — decompose, distribute, verify, remember.
Nori orchestrates multiple AI agents to plan, implement, review, and persist knowledge across sessions. Not another chat-over-code tool — a multi-agent engineering workspace.
Note
v2.0 adds team engineering: a department tree of durable partner sessions, Discuss/Assign before Code, and a conversation map (/map in the TUI, Map in Nori Work) linked by parent_session_id. Identity is injected via <session_self> and mount-change notices — not transcript copying.
Note
v1.0.0 was the first stable Nori Code and Nori Work release. Existing Nori Work installations are fully replaced during upgrade while user data is preserved.
- Browser page actions no longer wait for the 90-second bridge timeout when no page is open; the Agent immediately receives an instruction to navigate first.
- Browser tools remain registered while the desktop bridge reconnects, and independent heartbeats prevent long-running actions from making the bridge appear offline.
- Local
.htmland.htmfiles open in the embedded browser without granting arbitraryfile://access. - Desktop packaging rejects stale Web/SEA artifacts, and startup recovers from stale or incompatible local-server locks instead of silently connecting to an old backend.
- Regular Agent and SubAgent work is visible by project and session with nested ownership, output, correct completion counts, and completed/failed states.
- Opening Chat reliably returns to the conversation view and session list.
- The vault no longer creates empty legacy plural folders; Related links use Obsidian-compatible paths and include both outgoing links and backlinks.
- Built-in LSP discovery covers common language servers instead of reporting "No language server is configured" when a supported server is available.
| Nori Code | Nori Work | |
|---|---|---|
| What | Terminal CLI/TUI for focused coding sessions | Electron desktop workbench |
| Who for | Terminal-first power users | Full workspace with browser, terminal, Git, filesystem |
| Interface | Ink-based TUI with split panes | Multi-panel Electron desktop |
| Start | nori |
Standalone installer (see releases) |
Most AI coding tools are single-agent chat shells: one model, one context, one turn at a time. Nori is built differently:
- Parallel, not serial. Complex tasks decompose into DAG-shaped agent workflows — plan → implement → verify → review — running in parallel with dependency scheduling.
- Memory, not amnesia. Architecture decisions, code reviews, and patterns persist in a bidirectional-link vault. What you learned last month is available next session.
- Policy, not guesswork.
nori.yamlenforces deterministic rules: search memory before coding, run tests before exit, review before merge. AI flexibility backed by project discipline. - Desktop, not a web tab. Nori Work is an Electron native workspace — a proper local workbench.
SubAgent splits a task into parallel sub-agents with explicit dependency chaining. A multi-file refactor dispatches { plan, implement-1, implement-2, verify, review } concurrently — no manual turn-by-turn handholding.
TeamCreate hires durable partners as mounted child sessions on the conversation map. Discuss (TeamDecide / TeamSpeak) gathers statements before TeamAssign enters Code; the main Agent stays read-only while members execute. /team opens partner sessions; /map manages mounts. TeamDismiss removes partners and deletes their sessions. Web Map mirrors the same forest with pan/zoom and local annotations.
Every decision, review, and pattern lands in an Obsidian-compatible vault with [[wiki-links]]. The planner searches it automatically before each implementation phase. Cross-session knowledge means Nori gets smarter about your project over time.
Codify project rules that the agent loop enforces automatically:
rules:
- name: search_before_code
condition: { on_phase: implement, stage: enter }
prompt: "Search vault for prior decisions and patterns."
enforced: trueOrchestrator, coder, and reviewer can each use a different model/provider.
Bring any OpenAI-compatible provider — local (Ollama, LM Studio) or cloud. Each agent role (orchestrator / coder / reviewer) can run its own model.
Nori Work keeps the conversation, project files, live code changes, Git operations, LSP results, a persistent PTY terminal, and a multi-tab embedded browser in one resizable desktop layout. Inspector tools can be reordered or opened in standalone windows. Custom Agent roles define their own instructions and explicit read, write, terminal, web, and delegation permissions.
Agent and SubAgent work always runs in the background. The main model can inspect, pause, guide, resume, or stop a SubAgent while the collaboration view shows its project/session tree, status, output, and token usage.
The embedded browser is available to the main Agent through a structured Browser tool: navigate, snapshot stable element references, click, type, upload files, capture screenshots, inspect console/network activity, and work with page annotations. It supports web URLs and local .html/.htm files while blocking privileged URLs and arbitrary local files. User takeover can pause automation at any time, and actions fail immediately with actionable feedback when no page is open.
Memory notes use vault-relative [[folder/note|Title]] links. Nori Work renders outgoing links, backlinks, and the movable knowledge graph while retaining compatibility with legacy vault layouts and Obsidian.
| Priority | Feature | Status |
|---|---|---|
| P0 | Built-in LSP — diagnostics, hover, definitions, references, symbols, rename, and formatting | ✅ Implemented |
| P0 | Custom Agent Profiles — user-defined roles, prompts, base profiles, and tool permissions | ✅ Implemented |
| P0 | Nori Work — Embedded Terminal (persistent node-pty sessions) | ✅ Implemented |
| P0 | Nori Work — Embedded Browser (isolated WebContentsView tabs for research and preview) | ✅ Implemented |
| P0 | Nori Work — Filesystem Sandbox (whitelist + blocklist) | 📝 Planned |
| P0 | Nori Work — System Tray / Notifications | ✅ Implemented |
| P0 | Nori Work — Secure Preload Bridge | ✅ Implemented |
| P1 | Agent Browser Tool — navigation, snapshots, interaction, uploads, diagnostics, and annotations | ✅ Implemented |
| P0 | Team engineering — department tree, Discuss/Assign, conversation map, /team / /map |
✅ Implemented |
npm install -g nori-code
# Interactive TUI
nori
# One-shot prompt
nori -p "your task"
# Start the local web workspace
nori webNori Work is available as a standalone desktop installer. Download the stable v1.0.0 release, or browse all builds on Releases.
git clone https://github.com/wangyuahn/nori-code.git
cd nori-code
corepack enable
pnpm install
pnpm dev:cli # Terminal TUI
pnpm dev:web # Web UI
pnpm dev:desktop # Desktop workbench| Package | Role |
|---|---|
apps/nori-code |
CLI/TUI entry point |
apps/nori-web |
Web UI (loaded by desktop) |
apps/nori-desktop |
Electron desktop workbench |
packages/agent-core |
Agent, session, Team/SubAgent, tool, workflow engine |
packages/server |
REST/WebSocket server |
packages/kosong |
Model/provider abstraction |
packages/kaos |
File, process, environment abstractions |
packages/node-sdk |
Public TypeScript SDK |
packages/oauth |
Authentication and provider registry |
pnpm typecheck
pnpm lint
pnpm test
pnpm build
pnpm check:brand # Verify no stray Kimi brandingRun focused checks per affected package first; expand to root-level checks before commit.
MIT. Based on Kimi Code CLI (MIT), from which Nori forked and grew its own architecture: multi-agent DAG orchestration, persistent memory, desktop environment, policy engine, and independent branding. Required upstream compatibility is maintained where shared protocol surfaces apply.

