Gnosis
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 7 GitHub stars
Code Uyari
- process.env — Environment variable access in eval/run-eval.mjs
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Terminal coding agent with browser UI, MCP, Obsidian memory, and live office floor. Any model via OpenRouter. MIT.
Gnosis
Your AI agents needed an office. So I built one.
npx @dominquechurch/gnosis
Gnosis is a terminal coding agent that runs on any model, switches models
mid-session without losing your history, and ships with a browser UI where you
watch your agents work as blocky figures moving around a 3D office floor.
See it

Five lit rooms — coordinator, planning, coding, application, sub-agents. Every
agent, background job, and sub-agent is a figure at a desk, and the room lights
up when work lands there. Orbit it, zoom it, click a desk to read the session.
The floor above was staffed by typing "fill the office" into the chat rail on
the right — ask for agents and they walk in.
Why this exists
Every other coding agent picks a model for you and locks the door behind it. I
wanted the opposite: start a session on Sonnet because it reasons well, notice
the task turned into a thousand mechanical edits, drop to DeepSeek mid-session
because it costs a fraction — and keep every message of the conversation. So
that is what Gnosis does. /model, pick a new one, keep going. Nothing
restarts, nothing is lost. The rest of it — the office floor, the phone UI, the
verifier that grades each turn — came from the same impulse: I wanted to see
what the agent was doing instead of scrolling a wall of text and hoping.
What makes it different
| Gnosis | Claude Code | Aider | OpenCode | |
|---|---|---|---|---|
| Run any model you want | ✓ | ✗ | ✓ | ✓ |
| Swap models mid-session, keep history | ✓ | ✗ | ✗ | ✓ |
| Watch your agents work (browser UI) | ✓ | ✗ | ✗ | ✓ |
| A 3D office floor, because why not | ✓ | ✗ | ✗ | ✗ |
| Scan a QR code, drive it from your phone | ✓ | ✗ | ✗ | ✗ |
| Remembers things in your Obsidian vault | ✓ | ✗ | ✗ | ✗ |
| Plugs into MCP servers | ✓ | ✓ | ✗ | ✓ |
| Built by a 16-year-old | ✓ | ✗ | ✗ | ✗ |
What it does
- Any model via OpenRouter, switched at runtime —
/modelmid-session, no
restart, conversation history carries over intact - A 3D office floor — a Three.js scene of five lit rooms you can orbit,
replacing the flat SVG floor of 0.1.0. Every agent, background job, and
sub-agent is a figure at a desk, in real time - Staff the floor by asking — "add 5 agents to the coding floor", "fill the
office", "clear the floor". Agents are placed on the free desks the floor
actually has; you can also drop one on any desk by clicking it - Prompt caching — 12× cheaper on cached turns, measured live: $0.0252 →
$0.0021 on identical tokens via cache breakpoints - Sub-agents with isolated context budgets — parallel or scoped work on a
restricted tool set, with per-sub-agent cost accounting and explicit tool
grants (a researcher can be handedweb_search; nothing can be handedbash) - A coordinator, not a doer — the system prompt holds the top-level agent to
delegating and synthesizing, so independent work fans out instead of queueing - Goal bar with an automated verifier loop — hold an agent to a goal and a
read-only reviewer checks each turn's diff and steers it back on a fail - Automatic outcome evaluation — after any turn that touched files, a
read-only pass grades the diff pass/fail and can feed its own critique back as
the next turn ask_user— the agent stops mid-task and asks, instead of guessing on a
fork it cannot infer. Answer from the terminal or the browser; first one wins- Surgical rewind — jump back to any earlier turn (double-Esc or
/rewind),
or summarize everything up to it into one block and keep going from there - Session memory that learns — patterns and decisions distilled from past
sessions are loaded at the start of the next one, so it walks in knowing what
worked. Poisoned notes are refused and stripped, never replayed - Security scanning on every write — API keys, tokens, and hardcoded
passwords block the auto-commit before it happens - MCP client — ships with Context7 (live library docs), Playwright (browser
automation), and Chrome DevTools (live inspection); add any other server - Obsidian vault memory — a vault panel in the browser, and auto-save that
routes a turn worth keeping intoCode/,Decisions/, orResearch/by intent - Phone-first task assignment — scan the QR code, tap Code it or Research
it, lock your screen, get a push notification when it needs you - QR code LAN access, no flag —
gnosis servealways prints a LOCAL and a
LAN URL with a scannable code; the token is the gate, not a setting - Web PTY terminal — a real ConPTY shell in the browser, multiple tabs, each
in the active session's cwd - File browser with
.domignore— browse the session's tree, attach a file
to your next message, and keep noise out with gitignore syntax - Webhook inspector —
POST /webhook/:labelis captured and shown in its own
panel, so you can point a service at it and read what actually arrived - Kanban view — every session as a card across ACTIVE / REVIEW / PARKED /
DONE; moving a card changes the session (REVIEW puts it in plan mode) - Mobile responsive — a real one-handed layout under 640px: bottom nav,
bottom sheets for approvals, the floor as a tappable zone strip - Tree-sitter repo map, PageRank-ranked — the most central files first, so
edits are grounded in the real shape of the codebase - Streaming diffs — a large edit writes progressively into a live diff viewer
and only lands on disk at commit - 101 automated test suites — offline, isolated, green on Windows CI every push

Runtime model switching — the full OpenRouter catalog, in the browser
The story
I'm Dominique Church, I'm 16, and I built Gnosis over the summer before Grade 12
in Ottawa. I wanted Claude Code without the vendor lock-in, and a
browser UI I could actually watch while agents worked. The office floor started
as a joke and turned into the thing everybody notices first.
Install
Try it, no install needed:
npx @dominquechurch/gnosis
Keep it around:
npm install -g @dominquechurch/gnosis
echo "OPENROUTER_API_KEY=sk-or-..." >> ~/.dom/.env
gnosis
Then:
gnosis # the TUI
gnosis serve # the web UI — office floor, terminal, file browser
gnosis -p "prompt" # one turn, answer to stdout, exit
gnosis serve prints a LOCAL and a LAN URL with a scannable QR code for the LAN
one. Point your phone's camera at it and you are driving the same session from
the couch.
Useful in-session: /model to switch models, /serve to open the web UI,/plan to propose before editing, /cost for spend, /undo to revert the last
agent commit, /rewind (or double-Esc) to jump back a turn, /map for the repo
map. Type @ to attach files, / to autocomplete.
Keys
Your key never leaves your machine, and Gnosis does not phone home — no
telemetry, ever. Keys live in ~/.dom/.env, are read at request time, and only
go to the service they belong to: OPENROUTER_API_KEY for model calls,BRAVE_API_KEY for the web_search tool (optional), and groqApiKey in~/.dom/config.json to route groq/-prefixed models natively (optional). Thehttp tool refuses loopback, private-network, and cloud-metadata addresses, and
secrets are referenced as ${VAR_NAME} rather than inlined. Full details in
SECURITY.md.
Development
Want to contribute? The codebase is well-tested — 101 suites, all offline and
isolated — and the architecture is documented in
CONTRIBUTING.md, along with test conventions and how to add
a skill.
git clone https://github.com/DOMCHURCH/Gnosis.git
cd Gnosis
npm install
npm run build
npm link
npm run verify # 101 test suites
npm run eval # 10-task eval harness
Gnosis was formerly released as dom. The
domcommand still works as an
alias, andwindow.domOfficeis still there in the web UI.
MIT © 2026 Dominique Church · Built in Ottawa before Grade 12
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi