lody-cli
Skill1.7k starsChanged 5 days agoApache-2.0View on GitHub
Drive Lody from a terminal with the `lody` CLI (installed globally or run as `npx lody`) — sessions, schedules, agent configs, Roles, MCP servers, projects, machines, the background runtime, sync/export and review rendering. Use when any agent, inside a Lody session or an external coding agent, needs to hand work to Lody agents, chat with or watch Lody sessions, inspect workspace resources, or manage the Lody runtime on a machine.
- Installs packages
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about LodyAI/Lody
- LodyAI/acp-extension-core“feat: define reversible session archive capabilities”GitHub · Nov 3, 2026 · 1 reactions
- Asuka109/Lody“feat: download oversized remote session files in ranges”GitHub · Oct 15, 2026 · 1 reactions
- LodyAI/acp-extension-codex“perf: defer ACP validation schema construction”GitHub · Nov 4, 2026
- LodyAI/acp-extension-claude“feat: expose explicit title-marker archive capabilities”GitHub · Nov 3, 2026
- LodyAI/acp-extension-codex“feat: expose native session archives through Lody Core”GitHub · Nov 3, 2026
The biggest 5 of 50 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 50
Talked about on GitHub (50 times).
On GitHub · 50
- Nov 3, 2026feat: define reversible session archive capabilities — LodyAI/acp-extension-core1 reaction · 1 comment
- Oct 15, 2026feat: download oversized remote session files in ranges — Asuka109/Lody1 reaction · 2 comments
- Nov 4, 2026perf: defer ACP validation schema construction — LodyAI/acp-extension-codex0 reactions
- Nov 3, 2026feat: expose explicit title-marker archive capabilities — LodyAI/acp-extension-claude0 reactions · 2 comments
- Nov 3, 2026feat: expose native session archives through Lody Core — LodyAI/acp-extension-codex0 reactions · 1 comment
45 more on GitHub
- Nov 1, 2026fix: upgrade bundled Claude Code to 2.1.316 — LodyAI/acp-extension-claude0 reactions
- Oct 31, 2026fix: 正確結算 Claude advisor 工具結果 — LodyAI/acp-extension-claude0 reactions
- Oct 28, 2026fix: fork Pi sessions at completed native boundaries — LodyAI/acp-extension-pi0 reactions
- Oct 24, 2026Update DimCode icon to the 45:32 brand mark — agentclientprotocol/registry0 reactions
- Oct 22, 2026fix(cli): preserve interrupted turn outcome after restart — delete-cloud/Lody0 reactions
- Oct 22, 2026fix: prevent recursive Git transport wrapper targets — delete-cloud/Lody0 reactions
- Oct 18, 2026fix: report Claude quota failures at native turn boundaries — LodyAI/acp-extension-claude0 reactions
- Oct 17, 2026fix: preserve causal order when user history syncs late — delete-cloud/Lody0 reactions
- Oct 12, 2026fix: configure official extension and toolbar icons — wibus-wee/lody-wxt0 reactions
- Oct 11, 2026fix: trace Live Activity registration and lifecycle — Innei/lody-ios0 reactions · 2 comments
- Oct 10, 2026fix: delegate automatic session titles to ACP clients — LodyAI/acp-extension-codex0 reactions
- Oct 10, 2026fix: preserve official DeepSeek Messages endpoints — LodyAI/acp-extension-dsh0 reactions
- Oct 9, 2026feat: implement Core controls on Harness 0.2.0-rc.2 — LodyAI/acp-extension-dsh0 reactions
- Oct 8, 2026fix: support inline prompts after /plan — LodyAI/acp-extension-codex0 reactions
- Oct 7, 2026[BUG] RTCPeerConnection.close() does not cancel or join in-flight ICE/TURN gathering — shinyoshiaki/werift-webrtc0 reactions
- Oct 6, 2026feat: support ACP session forks at native turn boundaries — LodyAI/acp-extension-dsh0 reactions
- Oct 4, 2026feat: allow overriding the Pi binary via LODY_PI_PATH — LodyAI/acp-extension-pi0 reactions · 2 comments
- Sep 26, 2026feat: stream normalized Codex subagent events — LodyAI/acp-extension-codex0 reactions
- Sep 26, 2026feat: define normalized subagent event contract — LodyAI/acp-extension-core0 reactions
- Sep 24, 2026feat: generate native Kimi ACP session titles — LodyAI/acp-extension-kimi0 reactions
- Sep 24, 2026feat: use native Harness session titles — LodyAI/acp-extension-dsh0 reactions
- Sep 24, 2026feat: advertise and tag native session titles — LodyAI/acp-extension-grok0 reactions
- Sep 24, 2026feat: advertise automatic session title capability — LodyAI/acp-extension-codex0 reactions
- Sep 24, 2026feat: advertise and tag automatic session titles — LodyAI/acp-extension-claude0 reactions
- Sep 24, 2026feat: declare automatic session title capability — LodyAI/acp-extension-core0 reactions
- Sep 24, 2026fix(chat): keep slash menu off URLs and paths — ThinkInAIXYZ/deepchat0 reactions · 1 comment
- Sep 23, 2026fix: expose Harness tool calls and results through ACP — LodyAI/acp-extension-dsh0 reactions
- Sep 23, 2026[BUG] URL 或路径中的斜杠误触发命令补全,导致 Enter 无法发送消息 — ThinkInAIXYZ/deepchat0 reactions · 1 comment
- Sep 21, 2026fix(acp): display submitted plans in client plan cards — LodyAI/acp-extension-kimi0 reactions
- Sep 20, 2026fix: preserve missing-file semantics for ACP Plan mode — LodyAI/acp-extension-kimi0 reactions
- Sep 20, 2026feat: discover and explicitly enable installed Pi extensions — LodyAI/acp-extension-pi0 reactions · 1 comment
- Sep 13, 2026test: await usage accounting test completion — LodyAI/acp-extension-core0 reactions
- Sep 13, 2026fix: kimi usage accounting review findings — LodyAI/acp-extension-kimi0 reactions
- Sep 13, 2026fix: claude usage accounting review findings — LodyAI/acp-extension-claude0 reactions
- Sep 13, 2026fix: codex usage accounting review findings — LodyAI/acp-extension-codex0 reactions
- Sep 13, 2026feat: report DSH token usage and DeepSeek USD estimates — LodyAI/acp-extension-dsh0 reactions
- Sep 13, 2026fix: accumulate Grok prompt usage with correction deltas — LodyAI/acp-extension-grok0 reactions
- Sep 10, 2026OSS 功能对齐 — Innei/lody-ios0 reactions · 1 comment
- Sep 9, 2026test: match review completion to the requested turn — LodyAI/acp-extension-codex0 reactions
- Sep 9, 2026feat: define worktree project identity — LodyAI/acp-extension-core0 reactions
- Sep 9, 2026fix: await settings profile smoke tests — LodyAI/acp-extension-dsh0 reactions
- Sep 8, 2026fix: bridge Grok plan approval through ACP — LodyAI/acp-extension-grok0 reactions
- Sep 8, 2026feat: decouple ACP plan mode from permissions — LodyAI/acp-extension-kimi0 reactions
- Sep 7, 2026fix: preserve ACP v1 prompt across goal continuations — LodyAI/acp-extension-codex0 reactions
- Sep 7, 2026[Request]: Lody — ScoopInstaller/Extras0 reactions
In this repository14 other files it gives its agents.
- .agents/AGENTS.mdAGENTS.md
- .agents/docs/AGENTS.mdAGENTS.md
- AGENTS.mdAGENTS.md
- .agents/notes/AGENTS.mdAGENTS.md
- e2e/AGENTS.mdAGENTS.md
- .github/AGENTS.mdAGENTS.md
- scripts/AGENTS.mdAGENTS.md
- site-docs/AGENTS.mdAGENTS.md
- specs/AGENTS.mdAGENTS.md
- archive-agent-notesSkill
- effect-tsSkill
- effect-v3-to-v4Skill
- failure-containment-reviewSkill
- lody-loro-sync-stackSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
17 rules. About 0 are common, 5 are distinctive, and 12 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
12
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 19
Check which one is available with lody --version or npx -y lody --version, and stick to that form for the whole task.
- Distinctive: line 39
If it is not running, the command fails and says so.
- Distinctive: line 40
If it is busy, retry later.
- Very specific: line 53
If LODY_WORKSPACE_ID or LODY_AGENT_CONFIG_ID is absent, pass --workspace or --agent-config explicitly.
- Very specific: line 95
Add the context flag from step 3 and run: lody session create --workspace W --agent-config C --wait --json "task…".
- Very specific: line 99
Follow up with lody session chat <id> --wait "…".
- Very specific: line 100
Read the result with lody session history <id> --json, or check progress with session status <id>.
- Distinctive: line 102
Check the reply and its reported verification against the user's requested outcome.
- Distinctive: line 120
Use the reported error to choose the next step.
- Very specific: line 152
Keep the returned session ID.
- Very specific: line 155
If no session ID was returned, use session list and inspect matching sessions before trying again.
- Very specific: line 160
Treat turn.finished as the end of that turn and inspect its outcome and reply.
- Very specific: line 177
Use --limit 1-100 and --query to narrow results.
- Very specific: line 178
Use --cursor to get the next page, keeping the same filters.
- Very specific: line 190
feedback: put options before the text. - Distinctive: line 343
Run it after installing or upgrading an agent CLI, or after changing its environment.
- Very specific: line 369
Prefer ${VAR} or passthrough to typing secrets literally.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Lody CLI
This guide covers the cloud edition of Lody, including its account sign-in and shared workspaces. The open-source local edition is outside this guide's scope; do not apply these sign-in prerequisites to it.
How to call it
- Installed globally (
npm i -g lody): runlody …. - Without installing: run
npx lody …. Everylodycommand in this guide works the same way with thenpxprefix. Inside scripts, usenpx -y lody …to skip the install prompt. - Requires Node.js 22.14+ (22.x) or 23.6+.
- Check which one is available with
lody --versionornpx -y lody --version, and stick to that form for the whole task.
lody does two jobs. It runs the Lody runtime that executes agents on this machine
(start, daemon). It also works as a one-shot client for workspace resources: sessions,
schedules, agent configs, Roles, MCP servers and projects. Exact flags come from
built-in help: lody <group> [<sub>] --help. This guide covers what help leaves out:
prerequisites, shared conventions, business rules and the actions to confirm first.
Before running anything
- Sign in when required. Reuse an existing login; if a command reports missing or
invalid Lody credentials, do not run a bare
lody loginfrom an agent. It waits for browser authorization and can block without visible output when stdout is not a terminal. Have the user runlody loginin their terminal, or uselody login --auth <key>with a CLI API key or machine connection token the user provides. Workspaces, sessions, agent configs and machines are shared across every machine signed in to the same account. - Runtime. Commands that run agents on this machine need the Lody runtime. Start it
in the foreground with
lody startor in the background withlody daemon start.- If it is not running, the command fails and says so. Start the runtime first.
- If it is busy, retry later.
- Each machine has only one runtime. When the Lody desktop app is open, it already owns
the runtime and
lody start/daemon startrefuse to start another. That is expected: the CLI uses the app's runtime.
- Where you are calling from.
Inside a Lody session, the agent's environment has
LODY_SESSION_ID, and usuallyLODY_WORKSPACE_IDandLODY_AGENT_CONFIG_ID. Many commands use these when you leave the matching argument out:- the session commands'
sessionId operation list --sessionagent-role create/update --session--use-current-session-as-parentand--opened-by-current
If
LODY_WORKSPACE_IDorLODY_AGENT_CONFIG_IDis absent, pass--workspaceor--agent-configexplicitly; do not assume those variables are set.To act on a different session, pass its ID explicitly.
- the session commands'
From an external agent (any coding agent or script outside Lody), none of these variables are set. Pass everything explicitly:
- session ids
--workspace, when you have more than one workspace- the target
--machineand--agent-config, or an--agent-role
Commands that propose to "the current session" (
agent-role create/update) need--session <id>.
Choose the command from the request
| User intent | First action and next step |
| Give a named Role a new task | Find it with agent-role list --json, inspect it with agent-role get <id>, then use session create --agent-role <id>. |
| Start a new task with a particular agent | Resolve the workspace, machine and agent config, then use session create. |
| Continue earlier work | Find the existing session with session list --query <text> --json, check show/history, then use session chat <id>. |
| Check progress or read a result | Use session status, observe or history; reading does not require sending another prompt. |
| Run later or repeatedly | Resolve the target and time zone, then use schedule create --file <draft.json>. |
Reuse IDs returned by discovery commands. If several candidates still fit the request, ask which one the user means before dispatching. For repository work, resolve the repo or local project too; for plain chat, omit project selection.
Typical flow: hand a task to a Lody agent
lody workspace list --jsonto get the workspace. Addmachine list --online-only --jsonif the target is not this machine.lody agent-config list --json(oragent-role list --json) to choose who should run it.- Choose the work context:
- Reuse a parent session's project:
--parent <id>, or--use-current-session-as-parentinside a Lody session. - Pin a registered local directory:
--local-project <id|name|path>. The project must be registered on the target machine; runlody project add <path>there. Add--worktreeto keep the session off your checkout. - Use a GitHub repository:
--repo owner/repo. Checklody github list --jsonfirst, because--repoaccepts only repositories linked to the workspace.
- Reuse a parent session's project:
- Add the context flag from step 3 and run:
lody session create --workspace W --agent-config C --wait --json "task…". It starts the session and waits for the reply. Without--wait, it returns the session id right away. - Follow up with
lody session chat <id> --wait "…". - Read the result with
lody session history <id> --json, or check progress withsession status <id>. - Check the reply and its reported verification against the user's requested outcome. A finished turn is not proof that the task succeeded; report failures, missing verification or remaining work explicitly.
Without --machine, session create targets this machine, the parent's machine, or the
Role's machine. Without --agent-config, it reuses the current session's config, or the
machine's only config; a Role supplies its own. With several configs and no Role it fails
and asks for one. --parent and --use-current-session-as-parent already carry the
parent's project, branch and machine; do not combine them with --repo, --local-project,
--worktree or --branch. --worktree requires --local-project; --branch requires
--repo or --local-project. With --agent-role, omit --machine and --agent-config;
the Role supplies them.
When something fails
Login and authentication
Distinguish Lody account authentication from the selected agent/provider's credentials. Use the reported error to choose the next step.
From an agent, never run a bare lody login. It waits for browser approval; when
stdout is not a terminal, it can sit with no visible output. Have the user run it in
their terminal, or have them provide a CLI API key and run lody login --auth <key>
through an approved secret channel. Do not paste the key into the conversation.
| Symptom | Next step |
| Missing or rejected Lody credentials | Have the user sign in from their terminal, or use lody login --auth <key> with a key the user provides. An existing valid login is reused. |
| Browser does not open (when the user runs it) | Give the user the authorization URL printed by the CLI to open manually; keep the pending login running. Browser authorization requires the user's action. |
| Authorization code expired or authorization timed out | In the user's terminal, start a new lody login and use its new authorization URL; do not keep a stale login running. |
| Authorization denied | Report the denial and stop automatic retries. |
| Network error, auth service unreachable or validation unavailable | Preserve saved credentials, check connectivity and retry after recovery. Do not use logout or cache reset as a network repair. |
| Non-interactive daemon start requires login | Have the user run lody login in a terminal, or use an already available CLI API key or machine connection token through an approved secret channel. Do not ask them to paste secrets into the conversation. |
| Lody commands work, but the selected agent/provider reports an authentication error | Inspect the selected agent config without --show-secrets; follow that agent/provider's authentication instructions on its target machine. Repeating Lody login does not repair provider credentials. |
Common CLI auth errors are Not logged in. Run `lody login` first.,
CLI token is invalid or expired. Run `lody login` again., and
Invalid API key. Generate a new key and retry. Use a read-only command such as
lody workspace list --json to probe authentication: success means the Lody session is
authenticated, while failure exits non-zero with {"ok":false,"error":"…"}.
For a persistent failure, have the user run lody login --debug in their terminal for
login diagnostics, or use lody daemon status and lody daemon logs -n 50 for runtime
diagnostics. Share only relevant, redacted errors. A running daemon alone does not prove
cloud authentication is healthy. --skip-auth-check skips a preflight; it does not fix
credentials or connectivity. If blocked, report the failing step and the user action
needed.
Dispatch, waiting and completion
- Keep the returned session ID. If
create/chat --waittimes out or the connection drops, the prompt may already have been accepted. Inspect that session'sstatusandhistory, then useobserve <id> --jsonl --followif it is still running. - If no session ID was returned, use
session listand inspect matching sessions before trying again. If acceptance remains uncertain, report that uncertainty; do not automatically resend.createandchatdo not deduplicate retries. - A runtime-not-running error calls for starting the runtime; a busy error calls for retrying later. Before retrying a write, establish whether it was accepted as above.
- Treat
turn.finishedas the end of that turn and inspect itsoutcomeand reply. Idle/offline status alone is not completion. Report the session ID, result and remaining blockers instead of claiming success merely because waiting ended.
Conventions
- Workspace.
--workspace <selector>takes an id, slug or name; get them fromlody workspace list --json.scheduleand theagent-rolewrite commands also accept-w. - Other selectors.
--agent-config,--machine,--agent-roleand MCP server names take an id or a name. An ambiguous name is rejected; retry with the id. - Output. For automation prefer
--json; streaming commands also have--jsonl.--debugprints diagnostic logs.--offlinereads data already on this machine without syncing first. A failed--jsoncommand still exits non-zero and prints{"ok":false,"error":"…"}; check both the exit code andok. - Paging. The catalog lists (
machine,project,agent-config,agent-role,mcp list) return 20 items by default.- Use
--limit 1-100and--queryto narrow results. - Use
--cursorto get the next page, keeping the same filters.--all-pagesfetches everything. - JSON output has the shape
{ items, hasMore, nextCursor? }. Secrets are never included.
- Use
- Safe retries. Writes that take
--request-id <id>are safe to retry: run the same id with the same input again. These are schedule create/edit/pause/resume/run and agent-role create/update. - Prompts for
session create/chat:- Pass the text as an argument, with
--prompt, with--prompt-file <path|->, or on stdin. --attach <path>can be repeated: up to 8 non-empty files, at most 100 MiB each. If any attachment fails, nothing is sent.- Running the command again sends another message; it does not deduplicate.
- Pass the text as an argument, with
feedback: put options before the text. If the text starts with-, put--before it.
What each command needs
| Also needs the Lody runtime on this machine | Needs only sign-in |
session create, session chat, session cancel targeting this machine | The same commands targeting another machine (that machine must be online); session list/history/show/status/observe/rename/archive/restore/delete |
agent-config refresh-capabilities (this machine only) | workspace list, github list, machine list |
project add/delete, plain project list | project list --workspace/--machine/--catalog, schedule * |
operation list (operations recorded on this machine) | agent-config CRUD, agent-role list/get, mcp *, sync, export |
app reset-cache, review and review prompt need neither sign-in nor the runtime.
Targeting another machine for session create, session chat or session cancel still
requires that machine online; it does not require a local runtime.
Command reference
Sign-in and runtime
login [--auth <credential>] [--machine-name <n>]- With no options it signs in through the browser (device flow).
--authtakes a CLI API key or a machine connection token, for headless machines.logoutclears the saved sign-in.
start [--auth] [--machine-name] [--cli-types kimi grok claude codex] [--heartbeat-log]runs the runtime in the foreground. Use it to watch live output.daemon start [--auth] [--machine-name] [--skip-auth-check]runs the runtime in the background.- It first checks connectivity and sign-in. It asks you to sign in only in an interactive terminal.
daemon stop|status|restartmanage it.daemon logs [-n 50]shows recent logs; the files are under~/.lody/logs.daemon-runnerand other hidden commands exist only for the runtime's own use. Never run them.
Sessions (lody session …)
create [prompt]starts a new session.- Who runs it: omit
--machine/--agent-configto use this machine and the current session's config (or the machine's only config); otherwise pass--machineplus--agent/--agent-config, or an--agent-role.- A Role brings its own machine, agent, mode, model and options. With
--agent-role, the flags--machine,--agent(-config),--mode,--modeland--config-optionare ignored, with a warning.
- A Role brings its own machine, agent, mode, model and options. With
- What it works on: a GitHub repo
--repo owner/repoor a local project--local-project <id|name|path>, not both.--branchpicks the branch.--worktreegives a--local-projectsession an isolated worktree so it does not touch your checkout.
- Parent:
--parent <id>or--use-current-session-as-parentmakes it a child session and carries the parent's project, branch and machine. - Per-turn options:
--modeand--model--config-option k=v, repeatable--mcp-server-ids '<json array>';[]turns off every MCP server. Older published CLIs may not have this flag; checksession create --help.
--titlefixes the title instead of letting Lody generate one.--envis deprecated; set environment variables on the agent config.- Waiting: by default the command returns as soon as the message is sent.
--wait [--timeout <s>]blocks until the agent's reply finishes.
- Who runs it: omit
chat [sessionId] [prompt]sends a follow-up. It takes the same prompt, attachment, per-turn and wait options ascreate.cancel [sessionId] [--turn-id <id>]stops the running turn.- With
--turn-idit cancels only if that exact turn is still running, so a newer turn is never stopped by mistake. - It exits non-zero on failure.
- With
listshows active sessions.- Filters:
--archived,--all,--query,--machine-id,--agent-config-id,--agent-role-id(the Role the session was created from). --opened-by <id>or--opened-by-currentshow sessions opened by a given session.--limitcaps the count.
- Filters:
history [id]shows the visible conversation only, without reasoning or tool calls. Options:--limit(default 50),--all,--reverse,--json/--jsonl.show [id]prints session details.status [id]prints whether it is running now.observe [id]watches a session without marking it read.- By default it prints a snapshot.
--jsonl --followstreams the eventssnapshot,ready,session.changed,turn.started,turn.finishedandsession.removed. turn.finished.outcomeiscompleted,failedorcanceled.--workspace X --allwatches every session in a workspace; omit the id.- A session counting as idle or offline does not mean a turn finished. Wait for
turn.finished.
- By default it prints a snapshot.
rename [id] [title]changes the title. Inside a session, use--titleso the title is not mistaken for an id.archivehides a session.restorebrings it back.deletepermanently removes an archived session and cleans up its worktree on the machine.
Schedules (lody schedule …)
A schedule sends a prompt to an agent on a set trigger. It always runs on the machine it names, whichever machine created it.
list [--query] [--limit 30] [--offset 0]lists schedules.show|pause|resume|run|delete <id>act on one schedule.runstarts it now.create --file draft.jsonandedit <id> --file draft.jsontake a JSON draft.
Draft format (unknown fields are rejected):
{
"title": "Nightly triage",
"prompt": "Triage new issues and summarize.",
"machineId": "MACHINE_ID",
"trigger": { "kind": "cron", "expression": "0 9 * * 1-5", "timeZone": "Asia/Shanghai" },
"misfirePolicy": { "kind": "skip" },
"overlapPolicy": "skip",
"agent": { "agentConfigId": "CONFIG_ID" },
"project": { "kind": "github", "repoFullName": "owner/repo", "branch": "main" },
"destination": { "kind": "new_session" },
"retryPolicy": { "dispatchMaxAttempts": 3, "dispatchMaxAgeMs": 3600000 }
}trigger, bykind:manual: runs only onschedule runonce {at}: an ISO timeinterval {everyMs ≥ 60000, anchorAt}: repeats at that periodcron {expression, timeZone}
misfirePolicy.kindsets what happens to a run missed while the machine was off:skipdrops it,run_oncecatches it up once.overlapPolicysets what happens when a run is due while the previous one is still running:skipdrops it,queue_onequeues it.retryPolicycontrols retries when a run fails to start: 1–5 attempts, and stop retrying after at most 24 h.agentcan also setmodeId,modelIdandconfigOptionValues. Credentials go on the agent config, not here.projectis optional; leave it out for a plain chat. The local form is{ "kind": "local", "localProjectId", "branch"?, "useWorktree"? }.destinationsays where each run's prompt goes:new_session(default)own_session {epoch}: one session reused by this scheduleexisting_session {sessionId}
Agent configs, Roles, MCP servers
- Agent configs say which agent runs, on which machine, with what environment and
instructions.
agent-config list|get <id>|show [idOrName]read them.showlists environment variable names only.--show-secretsreveals the values; never use it where output is shared.- Without an argument,
showuses the current session's agent config.
agent-config create --agent-type <t>adds one. Optional flags:--machine,--name,--description--env K=V…or--env-file--promptor--prompt-file--title-config-option K=V…
agent-config update [idOrName]edits one.--env/--env-filemerge into the existing variables;--unset-env Kremoves one.--description ""and--prompt ""clear those fields.--clear-title-generationresets title generation.
agent-config delete [idOrName]removes one.agent-config refresh-capabilities [idOrName] [--machine]re-detects the agent's modes, models and options.- Run it after installing or upgrading an agent CLI, or after changing its environment.
- It works only for this machine, and the machine must be online.
- Roles are reusable presets that combine an agent config with instructions.
agent-role list|get <id>read them.agent-role create|updateonly propose a change. They post a review card into the session (--sessionor the current session), and nothing is saved until a person clicks Save there.createneeds--name,--machine-idand--agent-config-id.updateneeds at least one of--name,--description,--prompt-prefix.""clears a field.--filetakes JSON (camelCase field names) instead of the field flags; you cannot combine the two. Forupdate, the file holds only the fields to change.- For long instructions:
--prompt-prefix "$(cat role.md)".
- MCP servers give sessions extra tools. Commands:
mcp list,mcp add <name>,mcp set <server>,mcp remove <server>.- Command servers (run as a process on the machine):
--command, plus--arg…for its arguments--env NAME=value…for environment variables--env-passthrough NAME…copies variables from the runtime's own environment on the target machine
- HTTP servers:
--url--bearer-token, which supports${VAR}--header Name:value…
--descriptionadds a note.--default/--no-defaultsets whether new sessions select the server automatically.set --namerenames.- Prefer
${VAR}or passthrough to typing secrets literally.
- Command servers (run as a process on the machine):
Workspace, machines, projects
workspace listlists your workspaces.github listlists the repositories linked to the workspace. That is not every repository the GitHub App can see.machine listlists machines. Filter by status with--online-onlyor--online-status online|offline|unknown;unknowndoes not mean offline.--include-acp-capabilitiesand--include-agentsare older detailed views and do not combine with paging or filter flags.
- Projects are directories Lody can open sessions in.
project add [path=.] [--workspace | --all-workspaces]registers one.project deleteworks only in an interactive terminal, where you pick from a list.project listshows this machine's projects.--workspace/--machine/--kind local|github/--catalogbrowses the workspace catalog.
operation list [--session] [--state active|finished]shows operations recorded on this machine, such as git and PR actions.sync [--workspace | --all-workspace] [--concurrency 4] [--json|--jsonl]downloads workspace data to this machine.export [outputDir] [--workspace | --all-workspace] [--no-images] [--offline]writes sessions to local files.
Desktop app and review
lody app [path=.] [--workspace]opens the desktop app on a new chat with that directory selected, and registers the directory as a project.app reset-cache [--hard | --cancel]resets the app's cache the next time the app starts.--hardalso erases local data and signs you out.review [file] [-r repo] [-o out.html] [--no-open]turns a.review.mdor.review.json[.gz]file into a standalone HTML page.review promptprints instructions that teach an agent to write a.review.md.
Ask the user first
Confirm before running any of these:
session delete,agent-config delete,mcp remove,schedule deletemcp set, which can replace a server's command, URL or credentialsagent-config update, which changes a shared agent configurationproject delete, which removes a registered projectschedule edit, which changes live automationapp reset-cache --hardlogoutdaemon stopanddaemon restart, which interrupt running sessions
session create/chat, schedule run and feedback do real work or send data. None of
them is a dry run.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

