Quickstart
Build once, keep the daemon running, and use your coding harness normally. Majlis maintains detected user-level integrations and records coordination locally.
-
Build from a source checkout
Check the installation prerequisites, then run these commands from the Agent Majlis repository:
Terminal window make build-majlisexport PATH="$PWD/bin:$PATH"majlis versionThe build embeds the React dashboard in
bin/majlis. The installed binary needs no Node runtime. -
Start the daemon
Keep it running in its own terminal:
Terminal window majlis daemonStartup provisions a generated local operator and a durable worker-enrollment grant, then maintains integrations for detected harnesses. It prints its endpoint, integration status and a private dashboard link when dashboard assets are embedded.
-
Run your harness in your project
Start Claude Code, Codex or another MCP-connected harness normally. Claude lifecycle callbacks and Codex turn notifications can enroll sessions with a physically verified checkout. OpenCode, Qwen Code, Junie and Antigravity connect through managed MCP entries; capture begins on the first Majlis tool call.
Git worktrees share one repository workspace. Non-Git folders get separate workspaces, with Git verification and checkpoints unavailable. Muse automatic capture remains unavailable.
-
Open the shared view
Use the private dashboard link printed by the daemon, or inspect coordination from an ordinary operator shell:
Terminal window majlis statusmajlis tuimajlis doctorIf that shell explicitly selects an agent session, use
majlis --operator statusormajlis --operator tuifor the all-workspace view.doctorreports binding, embedded-dashboard availability, adapter capabilities and gaps.
What enrollment means
Section titled “What enrollment means”Enrollment records a worker identity and checkout under the standing local-operator grant. It does not grant a harness permission or prove native enforcement, wake delivery or that a message was read. Generic MCP clients need verified roots for worker mutations; missing or ambiguous roots produce a mutation-denying observe session.
Default warn scopes can surface overlap context while allowing the harness to continue. Enforcement changes require an explicit operator action and reason. Leases coordinate cooperating agents; they do not prevent arbitrary filesystem writes.
Codex MCP tools link to the thread’s existing native binding. If a first-turn tool reports IDENTITY_REQUIRED, a shell majlis command can enroll the harness-supplied thread in a verified Git checkout when ordinary sandbox permissions allow it; otherwise the first completed-turn notification establishes the binding. See Codex for its permission and sandbox limits.
Work, questions and review
Section titled “Work, questions and review”Agents can read context, start or adopt work, discover peers, ask addressed questions and inspect replies through MCP tools or the CLI. The terminal and dashboard expose the same durable work, questions, decisions, artifacts and recovery evidence.
finish submits verification evidence for review. Only authorized acceptance of the same artifact completes a task and unblocks its dependencies. Follow the operator and reviewer guide for explicit reviewer provisioning and acceptance.
Advanced setup and service operation
Section titled “Advanced setup and service operation”init, setup, explicit session registration and project-level hook installation remain advanced or scripted flows. They are not required for the automatic route above. If you want to choose a human operator principal with setup, do it before the first daemon start in that state directory. Startup’s generated principal cannot later be replaced by setup; keep using it or pass that exact existing principal.
Use majlis service install --preview-only to inspect a managed service plan, then majlis service install to keep the daemon running through the OS supervisor. Add --listen 127.0.0.1:0 to majlis daemon for authenticated loopback TCP; clients discover the published port when the default socket is absent.
majlis daemon --no-integrations disables startup integration maintenance. majlis uninstall removes unchanged owned integrations and the managed service while preserving foreign settings and uncertain edits. A later daemon start reinstalls integrations unless you use --no-integrations.
Continue with installation, MCP tools, policies and limitations.