Desktop app · Windows, macOS & Linux

Draw the crew.
Run it on your own Claude.

Think Dify or n8n, but for agents that read and change code — on your own machine, with a verifier that can say no.

Concentus is a desktop application for wiring multi-agent flows on a canvas and running them against your own repositories, your own databases and the Claude subscription already sitting on your machine. No server to deploy, no database to provision, no API key to paste.

RuntimeShips its own Java and PostgreSQL. Nothing to install beside it.
BillingYour Claude login. No API key; runs count against your plan's allowance for non-interactive use, and the app shows you how much is left.
SetupCreate an account on first launch. That is the whole of it.
Runs on claude gpt gemini deepseek localhost:11434 …or any endpoint you can name
01 · The Studio

The flow you draw is the flow that runs.

Drop agents, tools and data sources onto a canvas and connect them. A coordinator hands work to a crew; the crew hands its results to a verifier. There is no YAML hiding behind the picture and no orchestration code to write — the graph compiles straight into a multi-agent session.

Concentus FlowsStudioResourcesUsage claude · signed in you@example.com
Nodes
Agent MCP server 🗄SQL query 🐙Repository 📚Knowledge base 🌐HTTP endpoint Verifier Condition For each Merge 🔗Sub-flow
Flow
ship-from-ticket
v7 · 5 nodes · 4 edges
linearMCP
https://mcp.linear.app/sse
🗄ticketsSQL
select id, title, body from tickets where key = :key
Tech Leadcoordinator
claude-opus-5
Read the ticket, split it into backend and frontend work, and hand each part out.
Running · 41.2k
Backendagent
claude-sonnet-5
Spring Boot, Java 25. The compiler and its tests, nothing else.
Running · 18.7k
Frontendagent
claude-sonnet-5
React 19 and SASS modules. Match the panel it lives in.
Awaiting answer
+ 🔒
Coordinator · Tech Lead
Effort
high
Model
claude-opus-5
System prompt
Read the ticket, split it into backend and frontend work, and hand each part out. Do not write code yourself.
Approval
Ask before acting
Drawn

Nodes, edges, and the ports that say what may connect to what.

Compiled

A multi-agent session, launched and streamed over a socket.

Steerable

Commands routed to a session that is already running.

Versioned

Every run remembers the flow revision it executed.

02 · The crew

Sixteen kinds of node. One vocabulary.

Each is a real card on the canvas: an icon, a name, a badge, and a coloured spine that says what it is from across the room. Chains, not a flat roster — an agent can feed the next, branch on a condition, fan out over a list, or call another flow entirely.

Tech Leadcoordinator
claude-opus-5

Plans the work and hands it out.

Backendagent
claude-sonnet-5

Does one job, in its own context.

linearMCP
https://mcp.linear.app/sse

Any MCP server, by URL.

🗄ticketsSQL
select … from tickets

A query's result, handed in as context.

🐙concentusgithub
main · apps/backend

A repository the crew can read.

📚HandbookKB
142 documents indexed

Your documents, retrieved when relevant.

🌐deploy hookAPI
POST /deploy/staging

Any HTTP endpoint, by typing its URL.

Reviewerverify
Adversarial. Rejects on doubt.

Checks the work before it counts as done.

Needs a migration?IF
yes → the schema crew · else → skip

A real if/else — no input can fall between the branches. Every block has an on-error output too.

Each changed fileEACH
fan out · limit 8

Fan the same work across a list.

Collectmerge
joins 4 branches

Where parallel branches come back together.

🔗release-notesafter
a flow inside this flow

One flow calling another.

Ticket intrigger
cron · every day at 09:00

Where a run starts: typed, scheduled, a webhook, or an incoming mail.

Notifymail
to: team@ · the run’s result

Sends the result by SMTP when the run gets there.

Why this shapenote
Written for the next person

A note on the canvas. Group blocks to move them together.

03 · Run & steer

Watch it work. Take the wheel.

A run streams as it happens: every agent's own output, filterable one agent at a time, each holding its colour across the whole transcript. Ask an agent to approve its plan before it acts, and nothing touches your disk until you say so.

Runs
ship-from-ticket2m41s nightly-digestheld audit-main7m02s docs-sweep1m18s spike-pgvectorstopped
⑂ flow version v7
Σ execution tokens · in 184,220 · out 39,410 · ≈$0.00
⑃ 4 workers (1 failed) · ⟳ 1 retry · ⚖ killed 1/4 · ⧗ 2m 41s vs 7m 18s sequential (2.7×)
All agents Tech Lead 23% Backend 61% Frontend 44% Reviewer 9%
outputtimeline
09:41:07Tech LeadRead PROJ-418. Splitting into backend and frontend work.
09:41:12BackendReading apps/backend/src/main/java/…/FlowCompiler.java
09:41:12FrontendReading apps/frontend/src/flow/FlowCanvas.tsx
09:42:04BackendCompiler handles the new edge type. 3 tests added, all green.
09:42:30ReviewerRejected worker 3 — the migration is not reversible.
09:43:11BackendRetrying with a down-migration.
09:43:48Tech LeadPlan ready. Waiting on approval before touching the working tree.
Tech Lead is waiting for approval of its plan. Approve Reject
⚖ Verified

What the adversarial verifier killed, out of what it judged. Rejected output never reaches the merge.

⟳ Retried

A run that only passes after retrying everything is not healthy — it is lucky. The console says which.

⧗ Parallel

Wall clock against the same work done end to end. That ×factor is what the fan-out actually bought.

⟲ Replay

Walk a finished run's recorded outputs through the flow as it is drawn today — the canvas rings every block whose fate would flip. Decisions, not outputs; nothing is executed.

📱 Approve from your phone

A run that stops for a human posts to Telegram with ✅ / ❌ buttons, and asks its questions as messages you answer by replying. The app polls the bot, so the decision and the answer come home with no public URL, no inbound port and no app to install — Slack works the same way through reactions and threads.

04 · Use cases

Wire the crew for the job.

The same sixteen blocks, arranged for the work in front of you. None of these needs a line of glue code — only a different drawing.

linear lead befe

Ship from a ticket

Pull a story from Linear, split the backend and frontend work across sub-agents, and push the changes.

repo reviewer

Audit a diff

A reviewer agent sweeps changed files for correctness bugs and security issues, ranked by severity.

postgres agent

Data-aware answers

An agent queries your database and answers with the real numbers — not a guess from training data.

The trade

Flows run while the app is running — not at 3am on a server.

That trade is the whole point. Driving the claude CLI on your machine is what reaches your Claude login, your repositories and the folders on your own disk — none of which a hosted container can see. A scheduled or mail-triggered flow fires when your machine is on and Concentus is open.

05 · Install

Install it. Open it. That is the setup.

The app carries its own Java runtime and its own PostgreSQL, so there are no prerequisites and nothing to configure — and it touches neither, if you already have them installed. The first launch asks you to create an account, and that is the whole of the setup.

Windows

Installer

A per-user install — no administrator rights needed.

SmartScreen showing a warning is normal: the Windows installer is not code-signed yet. Click More info → Run anyway — or install through scoop, winget or npx concentus, which skip the warning entirely.

macOS

Disk image

Signed and notarized — opens without the Gatekeeper dance. Drag Concentus into Applications.

Linux

AppImage or .deb

The AppImage runs as-is; the .deb installs like any other package.

chmod +x Concentus-*.AppImage
./Concentus-*.AppImage

# or
sudo apt install ./concentus_*_amd64.deb

First run

Sign in to Claude once

To run flows on your subscription, sign in to Claude Code once in a terminal. Concentus finds the CLI itself.

claude          # then /login

Prefer the cloud API? Set ANTHROPIC_API_KEY instead.

The interface speaks English, Spanish and Catalan — it follows your system language on first launch.

Source

Build it yourself

Open source. Build the installer for your own platform, or run the app straight from the repo.

pnpm install
pnpm desktop            # build + launch

# or produce an installer:
cd apps/desktop && pnpm package
Any OS

Package managers

No SmartScreen wall, and updates arrive the way the rest of your tools do.

scoop bucket add concentus https://github.com/Gergilcan/concentus && scoop install concentus
winget install concentus
brew tap gergilcan/concentus && brew install --cask concentus
npx concentus
One-time

Sign in to Claude once, on your machine. Concentus runs your flows through the claude CLI that login already belongs to — which is why there is no API key to paste. Anthropic meters non-interactive Claude Code use in its own allowance, separate from your interactive sessions; the Usage page measures what this machine has consumed, and a flow can fall back to an API key or a local model when it runs out.

Everything else, including the webhook setup, is in the README and the documentation.

06 · Pricing

Free for one. By seat past that.

One person, one licensee, forever free — the app also runs with no license at all, at the same one-seat limit. Team (up to ten seats, bought here) and Enterprise unlock the shared database, more than one member, and SSO.

Individual

Free

A license with your name on it — the app works without one too, at the same one-seat limit. Enter your name and email and it lands in your inbox.

We'll email you the license and, occasionally, product news — unsubscribe anytime.

Team

Up to ten seats, bought here

What a team needs to work together, without the email: pick seats and term, pay by card, and the license lands in your inbox minutes after checkout. 25 € per seat per month; 20 € when you pay the year at once.

  • Google and Microsoft sign-in
  • Members and roles, up to your seats
  • The shared database
Term

Loading pricing…

Enterprise

Per seat, monthly or annual

Everything Team has, at any size, plus scale and governance. An invoice instead of a card, or a contract; annual billing is 10% cheaper. No prices are printed here yet — write in and we'll work out seats and term with you.

  • Custom identity providers (any OpenID Connect issuer)
  • Automatic accounts for an email domain
  • OpenTelemetry metrics export to your collector
  • Organization policies
  • Audit trail export
  • Unlimited retention of runs and versions
  • Several organizations on one deployment
  • Unlimited service accounts
  • Published endpoints without a rate limit
  • Groups inside an organization
Try it first

Fourteen days of the team features, no card

A trial license for up to ten seats, in your inbox in a minute: the shared database, members, SSO — everything a team or enterprise license unlocks. When it ends the installation drops back to one seat; nothing is deleted, and a license picks up exactly where the trial left off. One trial per address.

Build your first flow in minutes.

Install the app, sign in to Claude once, and run a multi-agent flow on your own subscription — no API key, no setup tax, and a usage page that tells you where you stand.