Core chats with no plugins.
zero plugins. still talks. ←
SOMEONE ASKED "FILE MY TAXES" — NOT BUILT YET — LOGGED ✕ SOMEONE ASKED "BOOK ME A FLIGHT" — NOT BUILT YET — LOGGED ✕ SOMEONE ASKED "RUN THIS PYTHON" — NOT BUILT YET — LOGGED ✕ SOMEONE ASKED "FILE MY TAXES" — NOT BUILT YET — LOGGED ✕ SOMEONE ASKED "BOOK ME A FLIGHT" — NOT BUILT YET — LOGGED ✕ SOMEONE ASKED "RUN THIS PYTHON" — NOT BUILT YET — LOGGED ✕
[ W O R K S P A C E 1 ] — T H E C H A T L I V E S A T /
Open-source harness to install your own AI assistant.
Tired of renting three AI tabs? Install it, point at Ollama (or paste a model key), and you have a product people can talk to. Themes change the look. Plugins change what it can do. Missing records what you have not built yet — harness and desk, not another ChatGPT UI or Claude Code CLI.
$ npm install $ npm run dev # seeds test@apostle.local · disable: APOSTLE_SEED_LOCAL=0
/ is the chat /admin is the desktwo URLs, one product.
it writes down what it can't do yet. and counts. ↘
── ROUTER → CHEAP
clock() → 14:32 WAT
ChatGPT-alt UIs
Open WebUI · LibreChat · omn1
They won “one chat / kill the tabs.” We are not another UI.
Claude Code alts
OpenCode · terminal agents
Coding CLIs. We do not claim that parity.
Apostle
Harness + desk
Install your assistant product. Themes, plugins, Missing.
the desk.
Voice, plugins, which model runs, spend, and the list of asks you cannot fulfill yet.
“book me a flight”
OPEN
“run this python”
OPEN
“read my calendar”
OPEN
“remember my name”
OPEN
“look at this screenshot”
OPEN
this list is your roadmap. they told you.
OpenAI-compatible. Grok today; OpenRouter, Ollama, anything with the same shape tomorrow.
[on] clock
network: none · secrets: none · approvals: none
[on] fetch
network: public https · secrets: none · approvals: none
[on] weather
network: open-meteo · no API key
[--] computer (next)
network: deny · jailed shell + files
Core stays small. A theme never owns the harness. A plugin declares what it needs.
Core chats with no plugins.
zero plugins. still talks. ←
Themes do not register tools.
a theme is clothes, not hands.
Plugins declare network, secrets, and approvals.
DEFAULT IS DENY.
One gateway object. The harness does not import five vendor SDKs.
ONE. count them. one.
User content — threads, plugins, themes — survives a core update.
“Full access to the host” is never a default.
$ apostle --shipped
[ ok ] threads, streaming-style replies, per-user history
[ ok ] sign-in — threads and desk settings belong to the operator
[ ok ] launch plugins: clock, calc, hash, uuid, base64, json, regex, fetch, unfurl, weather, missing, computer, browser
[ ok ] model map + token log
[ ok ] optional free-plan message cap (40) — desk control, not a billing product
[ ok ] MISSING. asks the tools can't do get logged with a count
6 shipped · 0 vendor SDKs · 1 gateway
$ tree -L 3 --what
N O W
Private themes without forking core. Phosphor public; Super Intelligence stays private.
Honest Hero chrome — tool cards, run layout, drawer shells — without pretending the backends ship.
Launch ready for OSS attention — README, one-command seed, demo path, license, screenshots, what works / what doesn't, Computer/Browser security posture. SI stays private.
N E X T
↳ not host FS · not Firecracker
L A T E R
Automations. Scheduled / triggered runs without a live chat turn.
A theme catalog. A catalog of plugins. Background runs that finish after the tab closes. Channels besides the web. MCP as the plugin port.
Billing / Stripe / plans — out for OSS. Not a near-term build.
N O T U N T I L T H E A B O V E I S D U L L
desktop controlwhatsapp
a workflow canvasa new model
boring is the feature.
$ git clone https://github.com/justuseapen/apostle
$ npm install
$ npm run dev
→ http://localhost:8080 · PGLite seeds Ollama + test@apostle.local / password123
# re-seed: npm run seed · disable: APOSTLE_SEED_LOCAL=0
# optional cloud key: XAI_API_KEY=… npm run dev
# no DATABASE_URL? embedded postgres resets when the process stops.
A solo developer should be able to point this at their own audience and not maintain an agent framework.
FORK IT ↗C O L O R
void
tile
border
dim
bone
focus
missing
tool
T Y P E
R U L E S