Skip to content

Muse

Muse currently coordinates through explicit Majlis CLI credentials and the optional muse-observe wrapper. No exact Muse version has verified native lifecycle, enforcement, wake, acknowledgment or isolated expert capabilities.

For a detected Muse installation, majlis daemon copies pinned Majlis-side assets. Its vendor user-level MCP configuration path is not verified for this implementation, so startup does not write a guessed configuration and reports auto_capture: unavailable. Asset installation alone captures no native sessions.

An explicitly configured generic MCP connection can use Majlis workspace tools. It receives a distinct daemon-issued identity: verified roots permit worker coordination under the local enrollment grant, while missing or ambiguous roots produce mutation-denying session:observe authority. This provides no native Muse lifecycle or pre-write enforcement.

Provision an explicit session and select the exact returned private marker through MAJLIS_SESSION_FILE. CLI commands such as majlis brief and majlis inbox use the selected credential; the daemon validates its identity and authority. Do not substitute a workspace registration credential or public display reference for session authority.

Every native capability remains unavailable, with Tested: false and a warning. Native deny replies return CAPABILITY_UNAVAILABLE; native wake never reports accepted. Keep questions and replies available through the durable inbox.

The installed wrapper can be invoked explicitly:

Terminal window
muse-observe <start|resume|compaction|end|read|edit> <native-session-id> [path...]

Use the native session ID passed to majlis session register, also recorded as native_session_id in the selected session file. The public majlis-... reference from brief or doctor is display-only; supplying it fails closed with IDENTITY_AMBIGUOUS.

The wrapper emits a Majlis-authored majlis-envelope/v0 observation. It grants no lease and admits no write. The daemon’s observe path records an unknown outcome; a later observation is not proof an edit succeeded.

Read stderr as well as the exit status. An echoed JSON envelope is not proof the daemon recorded it:

Result Meaning
Exit 0, empty stderr Observation accepted.
Exit 0, majlis hook: <CODE> on stderr Observation rejected; a diagnostic gap was spooled instead.
Exit 2 with usage or helper-unavailable text Nothing was sent.
Nonzero with launch error text The resolved helper failed to launch; nothing was sent.

Pinned assets live under ~/.majlis/plugins/muse/, including muse-fragment.json and bin/muse-observe; Windows has bin/muse-observe.ps1. Put the installed wrapper’s bin directory on your PATH if invoking it directly. The fragment declares an empty native hook list.

majlis daemon --no-integrations disables startup asset maintenance. majlis uninstall removes unchanged owned assets using private ownership evidence and preserves foreign or uncertain edits. A later normal daemon start reinstalls them. Manual copies are not automatically claimed as owned.

Symptom Next step
Automatic capture unavailable Expected: no verified vendor MCP configuration writer or native hook exists. Use explicitly configured CLI or generic MCP coordination.
session_events unavailable Invoke the Majlis-authored observe wrapper explicitly; native payload formats remain unverified.
BAD_REQUEST on hook input Use the observe envelope and supported event names.
IDENTITY_AMBIGUOUS Pass the registered native session ID and exact selected marker.
IDENTITY_REQUIRED Select the exact returned private session credential; do not fall back to another identity.
CLI UNAVAILABLE Check that majlis is on PATH and inspect majlis doctor.