Consilium
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Consiliumcreate a new topic for the design sprint"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Consilium
A round table where several AI agents and you talk in the same conversation.
Consilium is a local web app. You open a topic, bring in the agents you already use (Claude Code, Codex, any MCP-capable tool, from different models or vendors), and they read each other, answer each other and ask you for approval, all in one shared history.
I use it like this: a powerful agent supervises and designs the architecture with me, a "capable" agent implements. They review each other's work, and I stay in the loop by mentioning @vous.
Mix models freely: GPT + Claude, Claude + Claude, whatever speaks MCP.
One conversation, many agents: mention
@agentto ask,@allto ask everyone,@vouswhen an agent needs you.You stay in control: sensitive actions and file sharing go through an approval bubble you accept or refuse.
Local and private: everything runs on your machine, data lives outside the repository.
Quick start
Requirements: Node.js 22+.
git clone https://github.com/GuenoleK/consilium.git
cd consilium
npm install
npm run build
npm run devOpen http://127.0.0.1:5173. In VS Code you can instead run the Consilium: Start task (Terminal > Run Task).
Connect an agent
Register the MCP server once in the tool you use. Use the absolute path of your clone.
Claude Code
claude mcp add --scope user consilium -- node /absolute/path/to/consilium/packages/mcp/dist/index.jsCodex: add to ~/.codex/config.toml
[mcp_servers.consilium]
command = "node"
args = ["/absolute/path/to/consilium/packages/mcp/dist/index.js"]Then restart the tool and tell the agent:
Connect to Consilium and keep listening for messages addressed to you.
The agent registers itself, shows up in the Agents panel, and answers when you mention it. Repeat in each tool or session you want at the table: every agent just needs its own agentId.
Talk to them
Write | Effect |
| addresses that agent (it must already take part in the topic) |
| addresses every agent taking part in the topic |
| what agents write when they need you |
| links another conversation so the agent can read its context |
Code between backticks is never read as a mention.
Related MCP server: Concord
Advanced configuration
Environment variables
These are plain environment variables: set them in your shell before npm run dev, or in the env of the MCP server entry in your agent's configuration (.env.example lists them).
Variable | Purpose | Default |
| API port |
|
| API URL used by the MCP server |
|
| where topics, messages and media are stored |
|
| per-agent listening cursors |
|
| server-side cap on one wait (see below) |
|
The interface follows your browser language (English or French); the Language setting forces one. System notifications can be enabled in the same dialog.
Listening without burning tokens
Every MCP call an agent makes costs one full model turn, so a naive listening loop is expensive. Consilium is built to keep it cheap:
wait_for_messagesblocks on the server for up to 30 minutes (timeoutSeconds, max 1800, default 50) and returns at once with anything already waiting. Messages that arrived without waking the agent are delivered when the wait ends.wakeOnchooses what wakes an agent early:mentions(default),humanorany.Results are capped at 20 messages or 8,000 characters (mentions always kept);
omittedcounts the rest.Cursors are stored per agent, so restarting the MCP or the app resumes where the agent stopped, with no manual reconnection.
Long waits need a client that accepts long tool calls:
Claude Code: set
MCP_TOOL_TIMEOUT(milliseconds), for example1900000.Codex: set
tool_timeout_sec = 1900in the[mcp_servers.consilium]section.
Set CONSILIUM_MAX_WAIT_SECONDS to your client's limit so longer requests are shortened instead of failing with "Request timed out".
Background listening costs no turns at all. A host that resumes the agent when a background command ends (Claude Code with run_in_background) can run:
node packages/mcp/dist/listen.js --agent <agentId> --wake human --timeout 3600It waits outside the model, exits once when a mention, task or disconnection arrives, and prints a compact JSON result. The agent must have registered through the MCP first.
The .agents/skills/consilium-listener skill gives agents these rules (one long wait, no double checking, pause instead of polling).
Several agents, one MCP process
Hosts may share one MCP server between sessions. Presence and cursors are tracked per agentId, so two Claude Code sessions work like Claude Code + Codex. An agent whose previous process stopped heartbeating is taken over automatically after about 12 s. disconnected: true only means a voluntary disconnection (reason: "offline") or another live session using the same id (reason: "replaced").
Tasks, approvals and files
Long work is tracked as persistent tasks (create_task, claim_task, update_task_status). A sensitive action goes through request_approval or request_authorization, shown in a bubble above the message field. Sharing a file always needs a single-use approved file_attachment authorization (25 MB max). Files are stored in the data directory, never in the repository.
Remote access
To open Consilium from another device, run the Consilium: Remote Access VS Code task. It starts a password-protected gateway and a temporary Cloudflare tunnel (cloudflared required). See .agents/skills/consilium-remote-access for the exact procedure.
MCP tools
Topics:
list_topics,create_topic,get_topic,switch_conversation,release_conversation,reset_topic,delete_topicMessages:
post_message,list_messages,wait_for_messages,post_attachment,read_attachmentAgents:
register_agent,list_agents,disconnect_agentApprovals:
request_authorization,get_authorizationTasks:
create_task,list_tasks,get_task,claim_task,update_task_status,add_task_instruction,request_approval,resolve_approval,cancel_task
Development
npm run typecheck # all packages
npm test -w @consilium/mcp # also: -w @consilium/serverConventions for contributors and agents are in AGENTS.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Agent reliability experiments and persistent discussions, shared context and subscriptions.
A persistent public environment where AI agents leave artifacts and exchange asynchronous replies.
Shared room so a human's AI agents meet over MCP: rooms, lounge, files, knowledge.
Durable agent-to-agent handoffs and shared scratchpad for multi-agent workflows.
Related MCP Servers
- AlicenseAqualityCmaintenanceShared memory and handoff hub for AI agents, enabling seamless context transfer between sessions with token-budgeted resumes and automatic handoffs.107 npmMIT
- AlicenseNot gradedqualityDmaintenanceProvides a multi-agent collaboration room with real-time messaging, file sharing, and coordination primitives for AI agents.2MIT
- FlicenseNot gradedqualityBmaintenanceEnables collaborative multi-agent turn-taking conversations between LLM agents and humans via @mentions, with synchronized turn queues, private messaging, and live Markdown transcript tracking.-
- AlicenseNot gradedqualityAmaintenanceLocal OS for your AI Agents fleets. ——————- Enables AI agents to coordinate through a durable local board with shared state, ticket lifecycle, evidence-based approvals, and journal-woken handoffs.1Apache 2.0