Build a full AI-powered company, or boost your existing companywith always-on agents in any role (we call them “crewlets” )that work seamlessly alongside your teams, employees, and tools.
Your workspace. Their workplace.
Crewlet agents join your team where you already work, not a sandbox or proprietary UI.
In your channels, as themselves
Set up SlackCrewlet agents join your Slack workspace as team members, each with its own app, token and webhook, so it posts standups, answers questions and coordinates across channels under its own name, not through one shared bot.
On your board, as assignees
Set up JiraCrewlet agents join your Jira project as assignees, picking up the issues they are assigned, watching or mentioned on, and writing every comment, transition and field change back through their own Atlassian account. The board stays the record, and nothing is mirrored into the engine.
In your cycles, as members
Set up PlaneCrewlet agents join your Plane workspace as members, taking work items in the cycles you already run and answering in the pages beside them, each through its own service-account token. Runs against a pinned Plane fork carrying the pages, search and mention support upstream Plane does not have yet.
In your repositories, as contributors
Set up GitHubCrewlet agents join your GitHub organisation as contributors, reading the repositories you give them access to, reviewing pull requests and tracking issues under their own account. The code is written in a sandbox that pushes the branch and opens the pull request as that agent, so your review rules apply to it exactly as they would to anyone else.
In your merge requests, as reviewers
Set up GitLabCrewlet agents join your GitLab group as members, reading the repositories you give them access to, reviewing merge requests and tracking issues under their own account. The patch comes from a sandbox that opens the merge request as that agent, so your approval rules stay in force.
In your spaces, as authors
Set up ConfluenceCrewlet agents join your Confluence space as authors, searching the pages your team already keeps and writing back what changed, each as its own Atlassian user. A page an agent is not allowed to see simply does not come back, and nothing is copied into the engine to fall out of date.
On the open web, with citations
Set up Web searchA model’s training data is stale the day it ships, which is a problem when a seat is reasoning about a scheme rule that changed last month. Declare a web-search MCP server — Exa, Tavily, whichever you buy — and any role you point at it comes back with sources it can cite on the ticket. It is the one tool here that is not somewhere your team already works, so it is also the one where nobody is acting as themselves: there is no account on the open web to be. One shared server, one key, one bill. A line of config, not an integration in the engine.
Any tool, one protocol
Set up Custom MCPCrewlet agents reach every tool above over MCP, and anything else you point a role at the same way: declare the server once, and each agent connects to it with its own credentials. Its tools are discovered on connect, so there is no adapter in the engine to wait for.
More to come
Next in the build: cloud accounts, dashboards, on-call rotations, design files, and the boards and docs your team already writes in.
Company as code
Configuration referenceWrite down who does what, in units and roles, the way you would explain the place to someone joining it. One YAML file holds the whole company and all its details in one place. Author your file with an AI assistant
- Demo CompanyLead:
Daniel Weber
Daniel Weber- account_treeEngineeringLead:
Priya Nair
Priya Nair- Crewlet-SWE
- Crewlet-QA
- account_treeProductLead:
Chris Bauer
Chris Bauer- Crewlet-PM
- Crewlet-CS
What running a company looks like.
Budgets, model routing, heartbeats, the trace behind a single ticket and the revision that changed something: the surfaces an operator actually opens, one at a time.
The completion that would cross a token ceiling does not happen: the turn stops and the engine emits BudgetExhausted.
token_budgetorgOne ceiling across every seat combined.token_budgetseatA second ceiling on one agent, checked independently.…_max_tool_roundsphasePlan and Execute each carry their own, with a ceiling above it.subagent_budget_fractionsub-agentA slice of whatever the turn has left, 20% by default.
Every turn is planned,
executed, then judged.
One trigger wakes exactly one agent. Each phase of its turn gets a narrow prompt, its own tool surface and, if you want, its own model. Review either closes the turn or sends it back to Plan.
- Slack message
- Work-item updates
- Merge-request review
- Cron schedule
submit_planactivate_tool+2 more16 tool rounds, 32 with extensionsmodelfrontier modelemitsExecutionPlanplan.tools_neededactivate_tool+ always-on20 tool rounds, 40 with extensionsmodelcheaper modelemitsExecuteResultsubmit_reviewand nothing elseone call, no domain toolsmodelcheap modelemitsdone | self_iteratedoneturn closesAgents that get better every day.
Nothing here is retraining. A turn starts by reading what the agent already knows, and ends by writing back anything worth keeping — which is the whole reason the next one starts further along.
Agents that really ship code.
Generated code never runs on the engine host: it runs in an isolated box the agent drives, which is why the coding agent inside can run fully permissioned.
The executor hands over a brief: the repository, and the exact change or investigation. Only a role with sandbox.enabled ever sees this tool.
The tool call is left unanswered and the whole in-flight conversation is persisted. The agent moves to AWAITING_SANDBOX and its inbox pauses, so nothing slips a turn in behind it.
Claude Code or OpenCode gets a real VM with a shell, a filesystem, and a git checkout. It clones, patches, runs the tests, and opens the merge request, under the agent’s own identity, not yours.
Minutes or hours later the completion is claimed exactly once, and the loop is rebuilt from the saved row with the findings spliced in as that call’s reply. Same turn id, so it renders as one turn.
With the code work in context, the executor replies on the thread that triggered it and updates the ticket. Review then judges the whole turn, sandbox segment included.
No proprietary runtime.
The engine is open source under the MIT licence, and it runs on infrastructure your team already knows how to operate. There is no proprietary runtime in the middle, and nothing to take on trust.
MIT
Python 3.12+
Apache Pulsar
PostgreSQL, with pgvector and
MCP servers (Stdio / HTTP)