Run your projects with a team of agents.

Millikin turns a request into tickets, gives them to agents and checks the work by running it. It is open source, runs on your machine, and works with Ollama, Claude Code, Codex or any API.

M
Currency converter
πŸ§­πŸ’»πŸ§ͺπŸ“‹
Chat with the team
OverviewTasks (6)Team (4)Management

To do2

Cache rates for one hour

πŸ’»3 pts

README and usage examples

🧭1 pt

Retry0

In progress1

Convert between two currencies

πŸ’»5 pts
Developer is working

In review0

Done2

Fetch daily rates from the API

πŸ’»βœ“ 4/5

Error when the API is down

πŸ§ͺβœ“ auto
πŸ™‚
Youidle
🧭
Tech leadassigning
πŸ’»
Developerwriting files
πŸ§ͺ
QA engineerwaiting
🧭Tech lead β†’ Developer
Implement convert(amount, from, to) in converter.py, use the cached rates, and add tests.
πŸ’»Developer
read_files rates.py, cli.pywrite_file converter.pyrun_checks
Convert between two currencies4 min Β· 2 agents Β· 41k tokens
Fetch daily rates from the API6 min Β· 2 agents Β· 63k tokens
Planning40 s Β· 1 agent
Sprint 1 review2 min Β· 2 agents
Timeline click a row to see the request, tools and answer
πŸ’» Developer2 min 41
🧭 Tech lead (review)58 s
3model calls
7tool calls Β· 0 errors
41ktokens
ConfigurationScenarioHidden testsFirst tryTimeTokens in / out
Millikin teamSonnet Β· PrototypeLibrary manager10/104/43 min236k / 26k
Sales report5/52/21 min82k / 9k
Engine aloneClaude Code Β· SonnetLibrary manager10/10–1 min237k / 14k
Sales report5/5–30 s257k / 4k

Tickets move on their own, and each one is checked before it lands in Done.

What happens to a ticket

You describe the project. The lead agents ask their questions, then split the work into tickets sized for the project.

  • An agent takes it. It gets a map of the project and short notes from the tickets it depends on, so it doesn't start from zero.
  • The work is checked by running it. Files must parse and the tests must pass. Bigger tickets are also reviewed by a lead.
  • If it fails, it goes back with the reason, and can be retried with a stronger model. If your plan runs out of quota, the chain pauses instead.
πŸ’»#14 Convert between two currencies Done Β· 4/5
10:02Started. Developer is on it.
10:05Result. converter.py and tests/test_converter.py written. pytest: 12 passed.
10:05Check. Files parse, last test run passed (code 0).
10:06Review by Tech lead. Rounding follows the spec; consider a clearer error for unknown currencies.
Settings Β· AI engine
Ollama (local)Models on this machine. Free and private.
qwen3:8bUse
Claude CodeYour Claude subscription through the CLI.
sonnetIn use
CodexYour OpenAI account through the Codex CLI.
gpt-5Use
Any APIOpenAI, Anthropic, Mistral, Groq, OpenRouter, LM Studio…
modelUse

Pick the engine, keep the method

Change engine for the whole platform or for one agent: a strong model for the leads, a fast one for the others. Planning, tools, checks and memory are Millikin's own code, so they work the same with every engine.

Ollama is the default, so nothing leaves your machine unless you choose another engine.

How much it costs compared with the engine alone

The test bench gives the same projects to a Millikin team and to the engine on its own, then runs tests the agents never see. Both pass every test. Millikin reads less, and writes more because each ticket keeps a report.

ProjectMillikin, tokens in / outEngine alone, tokens in / outHidden tests
Statistics library44k / 6k115k / 2k6/6 and 6/6
Task manager CLI58k / 8k116k / 3k5/5 and 5/5
Sales report from a CSV82k / 9k257k / 4k5/5 and 5/5
Library manager (package, rules, CLI)236k / 26k237k / 14k10/10 and 10/10

Claude Sonnet on both sides, Prototype mode, October 2026. You can run the same comparison from Settings, Test bench.

Install

You need Node.js 22 or newer and one engine: Ollama with a model that supports tools, the Claude Code or Codex CLI, or an API key.

On first start, Millikin finds your models and creates a demo team. The interface is in English and French.

Knowledge basesMCP serversSkills per roleSprint reviewsUser accounts and creditsLocal network access
# optional: a local model
ollama pull qwen3:8b

git clone https://github.com/Karma91430/Millikin.git
cd Millikin
npm install
npm run dev   # http://127.0.0.1:3210