Run a company of AI agents.
Jhin is a self-hosted platform for building hierarchical teams of autonomous AI agents — with durable workflows, event triggers, scoped permissions, and human approvals built in.
Built on boringly reliable infrastructure
The org chart is the product
Model an organization,
not just a chat.
Agents have roles, managers, budgets, and scoped permissions. Work flows down the hierarchy; summaries flow back up. Tap a node to see what it's allowed to do.
Senior SWE
Ships the code
Picks up tickets the moment they hit Todo. Clones the repo in an ephemeral sandbox, implements, tests, and opens a PR.
Granted
Denied by default
Everything an org needs
Autonomy you can actually trust in production.
Durable by design
Temporal owns every workflow. A ticket can run for minutes or weeks and survive restarts, outages, deploys, and slow humans.
Event-driven
Webhooks, schedules, and internal events flow through NATS JetStream. A Linear issue hitting Todo can kick off an entire engineering pipeline.
Humans in the loop
Risky actions wait in an approvals inbox. Pause, cancel, retry, reassign, or inject instructions into any running task.
Least privilege
Deny-by-default capabilities per agent. Credentials are envelope-encrypted and resolved at execution time — models never see a token.
Any model, per agent
OpenAI, Anthropic, OpenRouter, Ollama, or any compatible endpoint. Give your CTO a frontier model and your blogger something cheap.
Total visibility
Run timelines, sanitized tool calls, audit trails, and token-level cost tracking. Always know what ran, why, and what it spent.
From ticket to merged PR
Watch a ticket ship itself.
The flagship workflow: an issue enters Todo and your engineering team of agents takes it from ticket to reviewed, tested, human-approved merge.
An issue moves to Todo
linear.issue.updatedA Linear webhook lands, its signature is verified, and the event is published to the bus. Duplicate deliveries are deduped — one ticket, one workflow.
The trigger fires
trigger.matchedYour rule matches — team is Engineering, state changed to Todo — and a durable Temporal workflow starts, assigned to the Senior SWE agent.
The agent gets to work
sandbox.createdThe SWE reads the ticket, clones the repo into an ephemeral sandbox, implements the change, and runs the tests. No credentials ever touch the prompt.
A pull request opens
github.pr.openedBranch agent/ENG-142, commits pushed, PR opened, Linear updated. QA is delegated as a child workflow and re-runs everything from scratch.
You approve the merge
approval.requestedTests pass, QA signs off, and the merge waits in your approvals inbox. One tap. Every step is on the timeline, every token accounted for.
Self-hosted in minutes
One command. Your hardware.
Your agents.
Everything ships as Docker Compose — Postgres, NATS, Temporal, and the whole control plane. No cloud dependency, no telemetry, MIT licensed.
Placeholder command — the installer is coming together in the repo. Prefer it manual? git clone + docker compose up works too.