Skip to content
< All cases

CrewHub

Your AI agents, working as a crew. Beta coming soon, and it will be open source.

Role
Our own product
Sector
Developer tools
Service
Digital Product Development
CrewHub project

The work

  • Ticketing and review web app
  • Agent CLI and postman
  • 3D world client
  • Signed installer
  • Marketing site & blog
  • 2

    projects, one source of truth

  • 3

    agent programs, each with its own key

  • 0

    actions before a person clicks

CrewHub grew out of a question we run into every day: when a team of AI agents works for you, how do you stay in charge of the work? It started as one app that showed agent sessions as a 3D world. Using it on real projects every day taught us that the work itself needed a calmer, stricter core. So CrewHub became two projects: crewhub-loops, where you and your agents get the work done, and crewhub-world, a 3D world on top of it, where you can learn and watch your crew at work.

The challenge

Agent-driven work is powerful but hard to steer. Sessions run in terminals, context sits in ten different windows, and the important moments, a question, a review, a key or an approval, are easy to miss. We wanted a place where every piece of work has an owner, every result comes back for review, and nothing an agent asks to do for you happens until you say so. And we still wanted it to be fun enough to leave open on a second screen.

What we built

crewhub-loops is a software factory for any kind of work: code, marketing, content or personal projects. Work comes in as tickets on a board. A small routing agent, the postman, delivers each one to the project’s lead agent. The lead picks it up, has builder agents do the work when it needs them, and reports back on the same ticket with comments and proof. A question comes back as a card with options and a proposal. Only a person can close a ticket.

Three things set it apart. The owner stays in charge: an agent asks, you confirm with one click on a card, and only then does anything that matters happen. Every agent has its own key and identity, so you always see who did what, and an agent can only do what its role allows. And it runs on your own machine, so your data stays with you.

crewhub-world turns the same projects into a living 3D town in the browser. Projects are buildings grouped in districts, agents walk their floor, and tickets are packages that move from rack to rack, Backlog to Planning to Review to Done, as the work moves. Trouble is visible from across the street: a failed run pins its card by the front door, and stale work gathers dust. The world reads crewhub-loops through a read-only viewer key, so it can show everything and change nothing.

Deep dive: the stack

crewhub-loops is a FastAPI service on Python 3.13 with Pydantic, packaged with uv, on a small SQLite database that records and routes. The web app is React 19 and TypeScript, built with Vite, with TanStack Query and a TipTap editor. Agents talk to it through a local socket API and the crewhub CLI, each in its own terminal pane under herdr: Claude Code, Codex and opencode are all supported. It installs as a user service on Linux, macOS and Windows through WSL. The installer checks the release’s signature before it unpacks anything. The server listens only on your own machine and is reachable from your other devices over HTTPS through Tailscale.

crewhub-world is a separate browser client in Three.js and React. crewhub.dev is a static Astro site, and its screenshots come from demo data, never from a real install.

How we work

CrewHub is built the way it wants you to work, and the way we approach AI development for clients: specs and plans first, a crew of AI agents implementing under human review, every step on a ticket. We run our own projects on it every day. crewhub.dev is built and run by an agent lead in crewhub-loops: every change is a ticket, a person reviews it, and it ships through CrewHub’s own release system. This case study was updated the same way.

Where it stands

Both projects are in active development, each on its own path. crewhub-loops ships dated releases. crewhub-world follows with its own. A beta of both is coming soon, and both will be open source. Follow crewhub.dev to hear first, or read why CrewHub became two projects. If you want to see what we mean by AI-first product development, this is the thing to look at.

Technologies

  • Python & FastAPI
  • React 19 & TypeScript
  • SQLite
  • Three.js
  • herdr
  • Tailscale
  • Astro
crewhub-world showing four districts of projects as an isometric 3D town, each with a card for agents, work in progress and who waits on a person
crewhub-world. Every project a building, every district a status card.
The crewhub-loops board with Backlog, Planned, In progress, Review and Done columns and a ticket marked Waiting on you
The crewhub-loops board. One card waits on you. Demo data.
A crewhub-loops ticket in Review with the lead agent's question cards, answer options and linked pull requests
You decide, agents work. The lead asks with question cards, a person answers. Demo data.
Inside a crewhub-world project building, with ticket racks by the door, agents at their desks and the lead's office
Inside a project. The racks by the door, the team on the floor, the lead in its office.
The crewhub-loops board on a phone, with tickets grouped by status
The board goes where you go, over Tailscale.

More cases

Start a project

Curious what AI development could do for your team?

Send us a message →

Or write to contact@ekinsol.be.
We read every message.