A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live
commands.list
Every command, one line each
What it is
The commands this repository offers, filtered by the program that runs them, by what running them changes, or by text. A summary rather than the whole graph: enough to choose a command, and never so much that a client has to read every argument of every command to find one.
Descriptor
- Canonical id
commands.list- Module
commands- Kind
- query
- Stability
- implemented
- Provenance
- declared
- Source
apps/majordomus-cli/src/capability/builtin/commands.rs- Cache
disabled- Benchmark
required- Tags
- commandsintrospection
Run
queryA query. It reads and changes nothing.
Projections
| Interface | As | Where |
|---|---|---|
| MCP tool | majordomus_commands | - |
| MCP resource | majordomus://commands | - |
| HTTP | GET /api/v1/commands | Swagger |
| Command line | not exposed | - |
Schemas
Input · CommandFilter
{
"type": "object",
"additionalProperties": false,
"properties": {
"origin": {
"type": [
"string",
"null"
],
"description": "Only the commands of one program: `executable`, `tool` or `workflow`."
},
"effect": {
"type": [
"string",
"null"
],
"description": "Only the commands whose effect is at most this one: `read_only`,\n`local_mutation`, `repository_mutation`, `network_mutation`, `destructive`."
},
"search": {
"type": [
"string",
"null"
],
"description": "Only the commands matching this text in their invocation, summary, tags or identity."
}
},
"description": "Which commands to answer with. Every filter is the graph's own vocabulary; none is a\nsearch over rendered text.",
"title": "CommandFilter"
}Output · CommandIndex
{
"type": "object",
"properties": {
"schema": {
"type": "string",
"description": "The schema of the graph these came from."
},
"fingerprint": {
"type": "string",
"description": "The fingerprint of that graph: a client may cache against it."
},
"total": {
"type": "integer",
"format": "uint",
"minimum": 0,
"description": "How many commands the graph holds, before the filter."
},
"commands": {
"type": "array",
"items": {
"$ref": "#/$defs/CommandSummary"
},
"description": "The commands that matched, in graph order."
}
},
"required": [
"schema",
"fingerprint",
"total",
"commands"
],
"description": "The commands this repository offers, filtered.",
"title": "CommandIndex",
"$defs": {
"CommandSummary": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The canonical identity."
},
"invocation": {
"type": "string",
"description": "The command line a person types."
},
"summary": {
"type": "string",
"description": "One line."
},
"origin": {
"type": "string",
"description": "Which program runs it."
},
"effect": {
"type": "string",
"description": "What running it changes."
},
"group": {
"type": [
"string",
"null"
],
"description": "The group it is found under."
},
"projections": {
"$ref": "#/$defs/CommandProjections",
"description": "Where it appears."
}
},
"required": [
"id",
"invocation",
"summary",
"origin",
"effect",
"projections"
],
"description": "One command, as an index shows it: enough to choose, never enough to have to skim."
},
"CommandProjections": {
"type": "object",
"properties": {
"cli": {
"type": [
"string",
"null"
],
"description": "The command line, as typed."
},
"workflow": {
"type": [
"string",
"null"
],
"description": "The generated workflow bridge's recipe name."
},
"mcp": {
"type": [
"string",
"null"
],
"description": "The MCP tool name, when the capability behind it declares one."
},
"http": {
"type": [
"string",
"null"
],
"description": "The HTTP route, when the capability behind it declares one."
},
"cockpit": {
"type": [
"string",
"null"
],
"description": "The Cockpit address, when the surface carries it."
},
"docs": {
"type": "string",
"description": "The page on the site. Every command has one."
},
"withheld": {
"type": [
"string",
"null"
],
"description": "Why a machine surface does not carry it, when one does not."
}
},
"required": [
"docs"
],
"description": "Where one command appears, derived from its effect, its interactivity and its origin.\n\nEvery field is computed by `super::policy`. Nothing declares a projection, and no\nsurface keeps a list of what it carries: a surface asks the graph."
}
}
}Examples
These are the capability's own benchmark cases: the same inputs the benchmark runs and the OpenAPI document shows.
all
{}read-only
{
"effect": "read_only"
}one-program
{
"origin": "executable"
}