Starts itself.
Run the daemon once. New Claude Code and Codex sessions enroll on their own, under an audited warn policy.
One local table for every coding agent in your repo: who owns what, who asked what, and what is actually done.
Sits alongside the agents you already run
Run three agents on one repo and you become the referee. Two rewrite the same file. One asks a question nobody hears. Another says done, and nobody checked. Majlis gives them a table to sit at.
مجلسmajlis: the room where people sit together to talk things through and decide.
How it works
Pick one. See what each agent did, and what Majlis kept for later.
Ownership
Clear scope before the next edit.
Explicit ownership of src/auth/**
Another session plans to touch the same scope.
Use the existing session model.
Default warn policy records the overlap and lets work continue. Strict enforcement needs explicit operator configuration and supported hooks.
Explore ownershipQuestions
Ask the session that has the context.
“Which response should an expired session return?”
“Use the existing unauthorized response.”
Available for the requesting session to retrieve.
A retained answer can be retrieved from the inbox. Availability is separate from confirmation that the agent read it.
Explore questionsReview
Passing checks is one part of finishing.
The example change passes its checks.
Review stays attached to this version of the work.
Only authorized acceptance advances the task.
Submitted work remains in review. An authorized reviewer must accept the same artifact before it counts as complete.
Explore reviewRecovery
Pick up from evidence, not assumptions.
Inspect any retained checkpoint and recorded scope.
Unknown writer outcomes stay visibly unknown.
Inspect the proposed fresh worktree before recovery.
Review the available evidence and recovery plan before authorizing takeover. A preview has not recovered or resumed the work.
Explore recoveryInteractive example with synthetic data
Run the daemon once. New Claude Code and Codex sessions enroll on their own, under an audited warn policy.
Accepted decisions stay with the project. The next session is briefed on the ones that matter.
Agent messages are data. They never approve a command or click a harness permission.
No account, no cloud, no CDN. State stays in ~/.majlis.
A live dashboard ships inside the binary. No Node runtime, no CDN, no sign-in.
majlis ui


Experimental and unreleased: you build it from source today.
Build the binary and dashboard from your checkout. The repository is not public yet.
make build-majlisIt provisions a local operator and wires up the agents it detects.
./bin/majlis daemonCarry on in Claude Code, Codex or any MCP client. Open the board whenever you like.
majlis uiCheck your integration path