A few months ago I posted a video saying I'd build an open-source,
self-hostable AI agent platform from scratch. No code yet — just three
things I kept hitting with existing agents that I wanted to fix:
- You can't see progress. You give an agent a job, walk away, come back — and it's been sitting on "npm or pnpm?" for 20 minutes. Or it died half an hour ago and never told you.
- No real isolation. Most agents are single-user. On a shared box, a leftover browser session means one person's task quietly uses another person's account.
- No continuity across devices. Start on your phone, you can't pick it up on your laptop.
This post is me keeping that promise. Tianshu
v0.5 ships all three — here's each, running.
Promise 1 — visible progress
A Kanban board backed by a worker pool. The orchestrator drops tasks
onto Ready; workers pick them up, run them, stream their transcript
live, and move them to Done. A task that dies is marked
awaiting intervention — not a silent screen.
(That screenshot is a real run — I dropped two tasks in, a Coder worker
is mid-flight on one of them.)
Promise 2 — real isolation
Every tenant runs in its own Linux sandbox. The default backend is
OpenShell (Docker), which — unlike a Hypervisor.framework microVM —
barely touches idle CPU on Apple Silicon, and ships a network egress
policy: the agent can only reach hosts on an allow-list; anything else
is blocked on the spot and logged.
Files are isolated the same way — one workspace per tenant, browsable in
the UI, persisted across sessions. Every row carries a tenant_id from
the first line of code; this was a hard design rule, not a retrofit.
Promise 3 — continuity across devices
A channel system routes messages to the agent regardless of surface.
WeChat is wired first; more channels are on the way.
The bonus round
Things I didn't promise but built anyway:
- Workforce Studio. Your whole agent config — main agent, every worker, the enabled plugin set, prompt blocks — pulled into one Solution you can edit in a three-pane IDE, diff against what's running, export/import as a file, and activate in one click. Config becomes something you version, diff, and share. You manage your agent the way you manage code.
-
Key-free web search (
web_search+web_fetch) — no API keys. - Point-and-click config for the model provider catalog (keys stay masked and server-side), MCP servers, and per-plugin settings.
Try it
npm install -g @tianshu-ai/tianshu
tianshu setup # a wizard configures a provider, sandbox, etc.
Open source (Apache-2.0), self-hostable: https://github.com/tianshu-ai/tianshu
⚠️ Heads-up: in v0.5 the admin/Settings pages aren't behind an auth
gate yet — run it as a single trusted operator for now. A proper
auth/role gate is next on the roadmap.
If those three pains sound like your week, I'd love your issues — what's
missing, what I got wrong, what to copy from.



Top comments (0)