Skip to content

Commands

Every command but doctor’s local checks, install, uninstall, config and app install talks to the daemon. Run wloop --help for the same list, including the commands of the intents your profile adds, and wloop <command> --help for one command’s help.

Set up from zero: config, agent homes, the app.

Terminal window
wloop init [flags]

Check the prerequisites, write the config, log in to Slack, install into the agent homes and the app, then run doctor. At a terminal it asks for each answer; elsewhere every answer comes from the flags.

FlagDescription
--projects-dir <dir>Where review clones a repository the workspace manager does not know
--agent <name>The coding agent that runs the turns
--scope-repo <owner/repo>A repository to follow; repeatable
--scope-team <org/slug>A team whose review requests and pull requests to follow; repeatable
--scope-person <login>A login whose pull requests to follow; repeatable
--profile <dir>A personal profile directory, created with example blocks when absent
--profile-defaultUse the bundled profile alone
--slack-client-id <id>The client id of your Slack app
--skip-slackLeave Slack as it is
--no-installInstall into neither the agent homes nor the app
--yesSay yes to every confirmation: overwrite the config, install, app install
--color auto|always|neverLay the output out for a terminal; auto styles it on a terminal alone

Examples:

Terminal window
wloop init
wloop init --scope-repo acme/api --profile-default --skip-slack --yes

See Set up with init.

Diagnose the setup without changing anything.

Terminal window
wloop doctor [--git] [--color auto|always|never]
wloop doctor --load [--json] [--color auto|always|never]

Check the prerequisites, the config, the agent homes, the profile and the daemon, and print the command that fixes each problem. The checks of wloop‘s state ask the daemon. With --load, print what the daemon spent since it started instead.

FlagDescription
--gitAlso check git access live with an ls-remote, as the daemon would run it
--loadThe calls, spawns and points by resource of every job, route and loop since the daemon started
--jsonWith --load, print the report as JSON
--color auto|always|neverLay the output out for a terminal; auto styles it on a terminal alone

Examples:

Terminal window
wloop doctor
wloop doctor --load

See Troubleshooting.

Resolve a unit’s open items, replies as drafts.

Terminal window
wloop act <url|ref|permalink|slack:key> [guidance...]

Act on the open items of a unit without touching its code: settle what you can and propose the replies it needs as drafts for you to approve; Address works on the code of a pull request you develop. The target is a pull request URL, a Slack message ref (<conversation>/<ts>) or permalink, or <provider>:<key> of a unit the intent serves; words after it are guidance for the turn.

Examples:

Terminal window
wloop act https://github.com/acme/api/pull/7
wloop act https://acme.slack.com/archives/C0123/p1700000000000100 say we ship Friday

See Tasks and views.

Triage the reviews and failing checks of yours.

Terminal window
wloop address <url> [--self-review] [--take-over] [--no-wait] [--no-brief] [guidance...]

Triage the reviews and failing checks of a pull request you develop, in its workspace, changing its code where they call for it; Act only settles open items and drafts replies. The target is a pull request URL; words after it are guidance for the turn. It runs as an intake this command follows; Ctrl-C stops following, not the intake.

FlagDescription
--self-reviewReviews the change with the review profile first, against the guidance as its plan, and fixes what it finds; nothing of that review is published
--take-overTakes it over first
--no-waitPrint the intake’s number instead of following it
--no-briefStart the round without its brief

Examples:

Terminal window
wloop address https://github.com/acme/api/pull/7
wloop address --self-review https://github.com/acme/api/pull/7 the plan is in the description

See Address reviews on your pull request.

Talk with an agent about a task.

Terminal window
wloop chat <task:key> [--repo <repo>] [--manager <name>] [--parent <worktree>] [guidance...]

Talk with an agent about a task: in the task’s last session when it can resume, else in a new one, in a worktree of the task’s repository or with no checkout. The target is task:<id>; words after it are guidance for the turn.

FlagDescription
--repo <repo>Owner/name of the repository to work in; without it the session has no checkout
--manager <name>The workspace manager that creates the worktree, instead of the configured ones
--parent <worktree>The worktree the new one goes under, where its manager keeps parents; the one the command runs in by default

Examples:

Terminal window
wloop chat task:t-3f9a2c4b5d6e7f80 what is left before we can ship this?

See Tasks and views.

Ask whoever it waits on for the next step.

Terminal window
wloop nudge <url> [guidance...]

Ask whoever the pull request waits on for the next step, in a comment; guidance is the topic. The target is a pull request URL; words after it are guidance for the turn.

Examples:

Terminal window
wloop nudge https://github.com/acme/api/pull/7
wloop nudge https://github.com/acme/api/pull/7 the release is on Friday

See Nudge whoever a pull request waits on.

Review someone else’s pull request in its own worktree.

Terminal window
wloop review <url> [--no-wait] [--no-brief] [guidance...]

Start or continue a review round on someone else’s pull request, in a dedicated workspace. The target is a pull request URL; words after it are guidance for the turn. It runs as an intake this command follows; Ctrl-C stops following, not the intake.

FlagDescription
--no-waitPrint the intake’s number instead of following it
--no-briefStart the round without its brief

Examples:

Terminal window
wloop review https://github.com/acme/api/pull/7
wloop review https://github.com/acme/api/pull/7 look at the migration first

See Review someone else’s pull request.

Start new work from a brief.

Terminal window
wloop start [task:<id>] [--repo <repo>] [--manager <name>] [--parent <worktree>] [guidance...]

Start new work from a brief: in a fresh worktree of a repository, or with no checkout. The target is task:<id>, or none to capture the brief as a new task; words after it are guidance for the turn.

FlagDescription
--repo <repo>Owner/name of the repository to work in; without it the session has no checkout
--brief-file <path>Read the new task’s brief from a file, instead of the words after the flags
--manager <name>The workspace manager that creates the worktree, instead of the configured ones
--parent <worktree>The worktree the new one goes under, where its manager keeps parents; the one the command runs in by default

Examples:

Terminal window
wloop start --repo acme/api add retries to the webhook sender; done when a failed delivery is retried three times
wloop start task:t-3f9a2c4b5d6e7f80 --repo acme/api
wloop start --repo acme/api --brief-file brief.md

See Tasks and views.

Make a pull request someone else opened yours.

Terminal window
wloop take-over <url>

Make a pull request someone else opened yours to develop: from then on wloop treats it as one of yours, and address works on it.

Examples:

Terminal window
wloop take-over https://github.com/acme/api/pull/7

See Take over a pull request.

Delete the workspace of a merged or closed one.

Terminal window
wloop remove <url> [--force]

Remove the workspace of a merged or closed pull request when nothing in it would be lost. --force removes it whatever it holds, for good; an open pull request’s workspace stays.

FlagDescription
--forceRemove whatever the workspace holds

Examples:

Terminal window
wloop remove https://github.com/acme/api/pull/7

See Workspaces and board columns.

What needs you, by view, and the tracked pull requests.

Terminal window
wloop status [--color auto|always|never]

List the tasks of the views the badge counts, such as Inbox and Needs me, then the pull requests you track. Piped, it prints one tab-separated line per task or pull request and view.

FlagDescription
--color auto|always|neverLay the output out for a terminal; auto styles it on a terminal alone

Examples:

Terminal window
wloop status
wloop status | grep needs-me

See Cockpit, terminal client and menu bar.

The same views in the terminal, one-key actions.

Terminal window
wloop tui

The views in the terminal, the profile’s and the plugins’, with one-key actions on the selected task or pull request.

Examples:

Terminal window
wloop tui

See Cockpit, terminal client and menu bar.

The cockpit, a workspace or a pull request.

Terminal window
wloop open [<pr-url> | #<route> | <cockpit-url> | wloop://open/#<route>]
wloop open [<pr-url> | #<route>] --print [--view <view>]

Open the workspace of a pull request in Claude Desktop or Orca, or the pull request itself when it has none. With no argument, open the cockpit; with a route (#queue=answer), a URL of this cockpit or a wloop:// link, open the cockpit there. The cockpit opens in the app’s window when the app runs, else in the browser. With --print, print the cockpit URL with its token instead of opening it.

FlagDescription
--printPrint the cockpit URL with its token instead of opening it
--view <view>The cockpit view, by its id, such as needs-me or mine

Examples:

Terminal window
wloop open
wloop open https://github.com/acme/api/pull/7
wloop open '#queue=answer'
wloop open wloop://open/#view=needs-me
wloop open --print --view needs-me

See Cockpit, terminal client and menu bar.

Drafts waiting for your approval, and yours.

Terminal window
wloop outbox [list] [--color <when>]
wloop outbox show <id> [--color <when>]
wloop outbox new <unit|message> <markdown> [--send [--yes]]
wloop outbox new <unit|message> --react <emoji> [--send [--yes]]
wloop outbox approve <id> [--text <markdown>] [--yes]
wloop outbox retry <id> [--confirm] [--yes]
wloop outbox edit <id> <markdown>
wloop outbox discard <id> [--reason <why>]

List the drafts waiting on you, proposed, failed or left sending, grouped by kind, or print one whole: its text as it reads, the items it is about and the commands it takes. Piped, the list is one tab-separated line per draft: id, kind, state, unit, label, mentions, creation time and first line. new writes a reply, or a reaction, on a unit: a Slack message ref (<conversation>/<ts>) or permalink (its thread, or with --react the message itself), a pull request URL or owner/repo#n, or <provider>:<key>. It waits in the Outbox for your approval; with --send it posts once you read it and say yes. approve shows a draft whole and posts it once you say yes at a terminal; from an agent’s shell it needs --yes and a session you drive, whose agent asks you first; retry posts a failed one again. edit changes a draft’s text and discard drops it.

FlagDescription
--color <when>list, show: auto, always or never
--react <emoji>new: react instead of replying: to the Slack message named, else to the unit’s message
--sendnew: post it now, through the Outbox, instead of saving it there
--text <markdown>approve: post this text instead of the draft’s
--confirmretry: post again a draft that may have been posted
--yesnew --send, approve, retry: go ahead without asking
--reason <why>discard: why the draft is dropped

Examples:

Terminal window
wloop outbox
wloop outbox new https://acme.slack.com/archives/C0123/p1700000000000100 "Friday works"
wloop outbox approve 12
wloop outbox discard 12 --reason "answered in person"

See What waits for you.

Create a task, or make this agent session a run of one.

Terminal window
wloop task new --title <title> [--brief-file <path>] [--prop <name>=<value>]... [--repo <owner/name>]
wloop task attach task:<id>

new creates a task in the Inbox and prints it as task:<id>: a title alone captures it. Each property is one tasks.toml declares, parsed by its type, and a value its type refuses creates nothing. attach makes the agent session it runs in, one a workspace manager started, a run of the task: the task’s page lists it with its workspace, session and transcript, and what it posts or drafts lands on the task. Its turn owes no record, so the session stops as it would without wloop.

FlagDescription
--title <title>new: the task’s title, one short line
--brief-file <path>new: a file whose markdown is the task’s brief
--prop <name>=<value>new: a property of the task; repeatable
--repo <owner/name>new: the repository the task’s work runs in

Examples:

Terminal window
wloop task new --title "Add retries to the webhook sender" --brief-file brief.md --prop priority=high --repo acme/api
wloop task attach task:t-3f9a2c4b5d6e7f80

See Tasks and views.

Open pull requests of others to help on.

Terminal window
wloop explore <url|owner/repo|repo|login|@org/team|search>

List open pull requests of others to help on, with their size, review state, checks and your last review: one GitHub search, 30 results. A bare word is a repository you follow, else a login, else text searched in the owners of the repositories you follow.

Examples:

Terminal window
wloop explore acme/api
wloop explore @acme/platform
wloop explore flaky test

See The daemon.

What the workflows would do now, and why.

Terminal window
wloop plan [--workflow <name>] [--provider <id>] [--stored]
wloop plan --unit <url|owner/repo#n|provider:key|id>
wloop plan apply <id|url>...
wloop plan dismiss <id|url>...

Print what the workflows would do now, grouped by decision, with each item’s id, unit as its row names it, reason, window and gain; it changes nothing. --unit tells why nothing happens to a unit, such as session:<session-id>, or to the unit of an item by the id plan printed: its items, then every workflow that gives it none, with the facts it read. apply runs pending items now, with the same guards, and dismiss drops them for good; a pull request’s URL names its one pending item.

FlagDescription
--workflow <name>Only this workflow’s items
--provider <id>Only the units of this provider: github, session or workspace
--storedThe plan the daemon holds, of every trigger, instead of evaluating the sweep now
--unit <unit>What every workflow decides for this unit now, a workflow that gives it no item included

Examples:

Terminal window
wloop plan
wloop plan --unit acme/api#7
wloop plan apply https://github.com/acme/api/pull/7

See Tune workflows.

Stop or restart automatic rounds.

Terminal window
wloop pause [<url>|<owner/repo>]...
wloop resume [<url>|<owner/repo>]...

Stop or restart the workflows that do not observe and the board moves on those pull requests and repositories; with none, everywhere. Workflows that observe keep planning.

Examples:

Terminal window
wloop pause
wloop pause acme/api
wloop resume https://github.com/acme/api/pull/7

See The sweep and workflows.

Follow a pull request out of scope, or stop.

Terminal window
wloop track <url>
wloop untrack <url>

Add a pull request to wloop, which then follows it like any in scope. untrack drops that reason; other reasons still hold it.

Examples:

Terminal window
wloop track https://github.com/acme/api/pull/7

See The daemon.

Leave or rejoin the pending views.

Terminal window
wloop mute <url> [--until <duration> | --until-state]
wloop unmute <url>

Snooze a pull request’s task, out of the pending views, for a while or until who it waits on changes: a wake on the task; unmute wakes it now.

FlagDescription
--until <duration>Mute for a duration such as 2d or 36h
--until-stateMute until who the pull request waits on changes

Examples:

Terminal window
wloop mute https://github.com/acme/api/pull/7 --until 2d
wloop unmute https://github.com/acme/api/pull/7

See What waits for you.

The facts and steps a workflow can use.

Terminal window
wloop workflows facts [<provider>]
wloop workflows steps

Print the facts a workflow’s predicates read, by subject, and the steps it may run. The documentation has the manifest reference.

Examples:

Terminal window
wloop workflows facts github
wloop workflows steps

See Facts and steps.

The blocks that apply to a repository.

Terminal window
wloop profile show <owner/repo|url> [--intent <intent>] [--show] [--color auto|always|never]

List the profile’s blocks per intent, their conditions and which of them apply to that repository or pull request. --show prints the instructions a turn there reads.

FlagDescription
--intent <intent>Only this intent’s blocks
--showPrint the instructions a turn there would read
--color auto|always|neverLay the output out for a terminal; auto styles it on a terminal alone

Examples:

Terminal window
wloop profile show acme/api
wloop profile show https://github.com/acme/api/pull/7 --intent review --show

See Write your review profile.

The block a new rule goes in.

Terminal window
wloop profile where <intent> [conditions]

Name the block of the profile a rule with these conditions goes in, and the blocks that join it in a turn.

FlagDescription
--<dimension> <value>A condition of the block, one flag per dimension: --organization, --repo, --user, --team, --association, --label, --base, --stage, --reviewer, --kind, --size, --risk
--tag <key>=<value>A tag condition; repeatable

Examples:

Terminal window
wloop profile where review --organization acme --repo api

See Profile format.

Add a rule to the profile.

Terminal window
wloop profile add <intent>[,<intent>...] [conditions] [flags] [-- <text>]

Add a rule to the block these conditions name, creating the block when it is new. It prints the diff and writes it with --apply; the rule’s text comes after —, else from standard input.

FlagDescription
--<dimension> <value>A condition of the block, one flag per dimension: --organization, --repo, --user, --team, --association, --label, --base, --stage, --reviewer, --kind, --size, --risk
--tag <key>=<value>A tag condition; repeatable
--section <heading>The ## heading the rule goes under
--title <title>The block’s heading, for a new block
--overrideThe new block replaces the guidance above it
--paths <glob>A glob a changed file must match, for a new block; repeatable
--applyWrite the change; without it, print the diff

Examples:

Terminal window
wloop profile add review --organization acme -- Every migration needs a down step.
wloop profile add nudge --apply -- Keep nudges to two sentences.

See Write your review profile.

Load the profile and list its problems.

Terminal window
wloop profile check [<dir>] [--color auto|always|never]

Load the profile, the configured one or the one in <dir>, and list its intents, blocks and conditions. It exits 1 when anything fails to load.

FlagDescription
--color auto|always|neverLay the output out for a terminal; auto styles it on a terminal alone

Examples:

Terminal window
wloop profile check
wloop profile check ~/work/my-profile

See Write your review profile.

A review round that publishes nothing.

Terminal window
wloop profile try <url>

Run a review round in a throwaway worktree with the review profile and print the review it would publish. Nothing reaches the pull request.

Examples:

Terminal window
wloop profile try https://github.com/acme/api/pull/7

See Write your review profile.

The JSON Schemas of the profile files, for editors.

Terminal window
wloop profile schema [--workflow|--actions|--tasks|--views|--gates|--records|--keys|--strings|--timeline|--decisions|--home|--omnibox|--config]

Print the JSON Schema of intent.toml, or of workflow.toml, actions.toml, tasks.toml, views.toml, gates.toml, records.toml, keys.toml or config.toml, for an editor. Every schema comes from the grammar the loaders check.

FlagDescription
--workflowThe schema of workflow.toml
--actionsThe schema of actions.toml
--tasksThe schema of tasks.toml
--viewsThe schema of views.toml
--gatesThe schema of gates.toml
--recordsThe schema of records.toml
--keysThe schema of keys.toml
--stringsThe schema of strings.toml
--timelineThe schema of timeline.toml
--decisionsThe schema of decisions.toml
--homeThe schema of home.toml
--omniboxThe schema of omnibox.toml
--configThe schema of config.toml

Examples:

Terminal window
wloop profile schema > intent.schema.json
wloop profile schema --config > config.schema.json

See Profile language.

Connect to Slack, or disconnect.

Terminal window
wloop slack login [--no-browser]
wloop slack login --app-token
wloop slack logout

Log in to Slack in the browser; it needs plugins.slack.client_id in the config. --app-token saves the app-level token read from standard input. logout revokes and deletes the tokens.

FlagDescription
--no-browserPrint the login URL instead of opening the browser
--app-tokenSave the app-level token read from standard input

Examples:

Terminal window
wloop slack login
wloop pbpaste | wloop slack login --app-token

See Connect Slack.

Who you are logged in to Slack as.

Terminal window
wloop slack status

Show the Slack login: the team, the user, when the token expires and whether the app-level token is stored.

Examples:

Terminal window
wloop slack status

See Connect Slack.

Post as you to a thread, channel or person.

Terminal window
wloop slack send <target> <text> [--thread=false] [--broadcast] [--yes]

Post as you to a message, by its ref (<conversation>/<ts>) or permalink, a #channel, channel id, @handle, email or user id. A message target replies in its thread, through the Outbox: a draft of yours on the thread, approved once you say yes, so it feeds the thread’s items and shows in the Logbook. It asks first unless --yes.

FlagDescription
--thread=falsePost to a message’s conversation instead of its thread
--broadcastAlso send a thread reply to the conversation
--yesPost without asking

Examples:

Terminal window
wloop slack send '#releases' 'api 1.4 is out'
wloop slack send @maria 'can you look at acme/api#7?'

See Connect Slack.

Admit every message of a thread, or stop.

Terminal window
wloop slack follow <message>
wloop slack unfollow <message>

Follow the Slack thread of a message, named by its ref (<conversation>/<ts>) or permalink, so every message of it is admitted, or stop following it.

Examples:

Terminal window
wloop slack follow https://acme.slack.com/archives/C024BE91L/p1700000000000100

See Connect Slack.

Write the hooks, MCP and skills into agent homes.

Terminal window
wloop install [--home <dir>]... [--dry-run] [--print-skill <name>]

Write into every agent home wloop finds, or each --home: the MCP registration, the Stop, SessionStart and UserPromptSubmit hooks, the turn_end permission and the bundled skills, also into ~/.agents. settings.json and the MCP registration are backed up before their first change; a skill is replaced only while it is unedited. Run it again after each upgrade.

FlagDescription
--home <dir>An agent home to install into, instead of every one found; repeatable
--dry-runPrint what would change and change nothing
--print-skill <name>Print the bundled skill with this name and exit

Examples:

Terminal window
wloop install
wloop install --home ~/agent-home --dry-run

See Install.

macOS: the app, menu bar and the daemon at login.

Terminal window
wloop app install [--no-menu-bar]

Install wloop.app, with the menu bar and notifications, and the LaunchAgents that run the daemon and the menu bar at login. --no-menu-bar installs only the daemon’s, which keeps serve running.

FlagDescription
--no-menu-barInstall only the daemon’s LaunchAgent

Examples:

Terminal window
wloop app install

See Install.

Trust a repository in an agent home.

Terminal window
wloop trust [--home <dir>] [--exact] <folder|workspace>

Trust a folder’s repository in an agent home, the configured one by default, as accepting the agent’s trust dialog would; it covers every worktree of it. wloop never trusts a folder unless you run this, or the folder is a repository it just cloned for a project whose trust_clones is on.

FlagDescription
--home <dir>The agent home that trusts it
--exactTrust the folder alone rather than its repository’s main checkout

Examples:

Terminal window
wloop trust ~/src/api

See Troubleshooting.

Take out what install and app install set up.

Terminal window
wloop uninstall [--purge] [--dry-run] [--yes]

Take out the daemon’s and the menu bar’s LaunchAgents, wloop.app, the agent homes’ entries, the unchanged bundled skills and the Slack tokens. It keeps the config and the data unless --purge, and asks first unless --yes.

FlagDescription
--purgeAlso delete the state and config directories: the store and its backups, MCP key, dossiers, logs, config and review profiles
--dry-runPrint what would be removed and change nothing
--yesRemove without asking

Examples:

Terminal window
wloop uninstall --dry-run
wloop uninstall

See Uninstall.

Migrate the store to this release’s schema.

Terminal window
wloop store migrate [--dry-run] [--yes]

Take the store to this release’s schema version: copy it into <state>/backups, run each migration in its own transaction and check the result. A release’s daemon does this on its own when it starts; run it when a build that is not a release asks for it, or to retry a migration that failed and see each step. It asks first unless --yes.

FlagDescription
--dry-runPrint the migrations, the backup and the space it needs, and change nothing
--yesMigrate without asking

Examples:

Terminal window
wloop store migrate --dry-run
wloop store migrate

See Upgrade.

Put a backup of the store back.

Terminal window
wloop store restore [--list] [<backup>] [--yes]

Replace the store with a backup from <state>/backups, by default the newest this release reads, keeping the replaced store there as a pre-restore copy. What changed since the backup is lost. A backup older than this release is migrated after. It asks first unless --yes.

FlagDescription
--listList the backups with their schema versions and dates
--yesRestore without asking

Examples:

Terminal window
wloop store restore --list
wloop store restore

See Upgrade.

Print a configuration value.

Terminal window
wloop config get <key>

Print a configuration value, defaults included. A dot names a nested key.

Examples:

Terminal window
wloop config get agent
wloop config get sweep.fast

See Configuration.

Write a configuration value.

Terminal window
wloop config set <key> <value>

Write one key of the config file, keeping its comments and layout. The value is read as TOML (true, 5, [“a”, “b”], “quoted”) and as a string when it is not TOML. A key no setting reads, a workflows.<name> key whose name is none of the profile’s workflows (doctor lists them) nor a disabled plugin’s, or a value the configuration would refuse, changes nothing. The previous file is kept beside it as a backup. The daemon applies profile live; any other key after a restart.

Examples:

Terminal window
wloop config set workflows.task-check-on.enabled false
wloop config set sweep.fast 5m
wloop config set plugins.github.automated_reviewers '["acme-bot"]'

See Configuration.

Remove a configuration value.

Terminal window
wloop config unset <key>

Remove one key from the config file, so its default applies, keeping the rest as written and the previous file as a backup. A table’s name removes the whole table, and a table left with no key or comment loses its header too. It removes a key no setting reads too, so a file that does not load can be fixed one key at a time.

Examples:

Terminal window
wloop config unset sweep.fast
wloop config unset workflows.task-check-on

See Configuration.

Print the version.

Terminal window
wloop version

Print the version of wloop.

Examples:

Terminal window
wloop version

Review, merge and turn durations, waits, tokens.

Terminal window
wloop timings [--since <days>] [--prs] [--turns] [--tags] [--json]

What wloop recorded: time to review, approve and merge, lead time, who pull requests waited on, turn and brief durations, waits, tokens and a change failure proxy.

FlagDescription
--since <days>The days to look back (default 30)
--prsAlso list each pull request with its milestones
--turnsAlso list each turn with its duration
--tagsAlso list each tag key’s values and the dropped spellings
--jsonPrint the report as JSON

Examples:

Terminal window
wloop timings
wloop timings --since 7 --prs

See The daemon.

Follow, start or cancel an intake.

Terminal window
wloop intake <n>
wloop intake without <n>
wloop intake cancel <n>

Follow an intake until its round starts, start it without waiting for its brief, or cancel it. Ctrl-C stops following, not the intake.

Examples:

Terminal window
wloop intake 42
wloop intake without 42

See The brief.

Make a pull request’s brief again.

Terminal window
wloop brief refresh <url>

Make a pull request’s brief again now. It needs brief.enabled.

Examples:

Terminal window
wloop brief refresh https://github.com/acme/api/pull/7

See The brief.

Copy a review request for a pull request.

Terminal window
wloop brief copy <url>

Put a review request with the pull request’s title, link and brief on the clipboard, to paste in a chat; where there is no clipboard it prints the request. The profile’s actions.toml words it.

Examples:

Terminal window
wloop brief copy https://github.com/acme/api/pull/7

See The brief.

A pull request’s turns and their records.

Terminal window
wloop turn show <url> [--json] [--color auto|always|never]

Print the pull request’s turns with their records and answers. Piped or with --json, it prints JSON with each one’s instructions.

FlagDescription
--jsonPrint the book as JSON, as off a terminal
--color auto|always|neverLay the output out for a terminal; auto styles it on a terminal alone

Examples:

Terminal window
wloop turn show https://github.com/acme/api/pull/7

See Turns and rounds.

Prove an agent home end to end.

Terminal window
wloop probe --workspace <workspace-id-or-path> [--home <dir>] [--model <name>]

The daemon sends a self-test turn into a new session of the Claude Desktop or Orca workspace and prints its turn as JSON, which proves the agent home, its hooks and its MCP registration work together.

FlagDescription
--workspace <workspace-id-or-path>The workspace the probe’s session runs in: its Claude Desktop or Orca id or its worktree path
--home <dir>The agent home the session runs with (default: the agent’s own)
--model <name>The agent’s model (default: the agent’s own)

Examples:

Terminal window
wloop probe --workspace ws-123

See Troubleshooting.

Run a turn by hand from an agent session.

Terminal window
wloop instructions <intent> [<url>] [<intent flags>] [-- <guidance>]
wloop instructions <intent> --turn <id>

Run a turn of an intent by hand from an agent session: the daemon prepares this worktree, starts the turn on this session and prints its instructions. --turn starts the turn wloop sent instead and prints its instructions.

FlagDescription
--turn <id>Start the turn wloop sent with this id
--agent <name>The agent that reads them (default: the configured one)

Examples:

Terminal window
wloop instructions review https://github.com/acme/api/pull/7 -- focus on the API
wloop instructions review --turn 66ea4cdcae20

See Turns and rounds.

Record how a turn ended; read your answer.

Terminal window
wloop turn end <url> --turn <id> --file <path>
wloop turn answer <url> [--gate <id>]

end records how this session’s turn ended, from a JSON file, when the session has no wloop MCP tool; the file is deleted once stored. answer prints the user’s answers to this session’s gates that it has not read, or, with --gate, every answer that resolved that gate, and marks them read.

FlagDescription
--turn <id>The id on the first line of the turn’s instructions
--file <path>The JSON file that holds the record

Examples:

Terminal window
wloop turn end https://github.com/acme/api/pull/7 --turn 66ea4cdcae20 --file /tmp/record.json
wloop turn answer https://github.com/acme/api/pull/7

See Turns and rounds.

The agent hooks install writes.

Terminal window
wloop hook session-start [--agent <name>]
wloop hook stop [--agent <name>]
wloop hook prompt [--agent <name>]
wloop hook mcp-headers

The agent’s hooks, which install writes into each agent home; they read the payload on standard input and never block by failing. prompt records when you type, which closing a session reads. mcp-headers prints the session’s handle as the header of wloop‘s MCP server; the MCP registration runs it.

FlagDescription
--agent <name>The agent whose hook this is

Examples:

Terminal window
wloop hook stop < payload.json

See Turns and rounds.

Run the daemon.

Terminal window
wloop serve

Run the daemon, headless: the store, the sweeps, the cockpit and wloop‘s MCP server. The daemon’s LaunchAgent runs it.

Examples:

Terminal window
wloop serve

See The daemon.

macOS: the menu bar and notifications.

Terminal window
wloop app

Run the menu bar and the notifications, a client of the daemon. wloop.app runs it.

Examples:

Terminal window
wloop app

See Cockpit, terminal client and menu bar.

This page is generated from wloop help by make docs-ref.