-
Notifications
You must be signed in to change notification settings - Fork 4
CLI Apps
ed apps is the System page's Running apps card on stdout: what is running on
this Mac right now, and a way to quit any of it, one app at a time or
everything at once. Reach for it when you want the list without opening a
window, or when a script needs a quiet desktop before something noisy runs.
The two verbs sit on opposite sides of a line. Listing reads the process table
directly and needs nothing. Quitting cannot be done by ed at all: sending a
quit event is Automation, and that grant belongs to the Edith bundle rather
than to a command line process, so ed asks the menu bar app to send it and
exits 4 when Edith is closed.
| Command | What it does |
|---|---|
ed apps ls |
Lists every app with a Dock presence, with its pid and bundle id. Runs when you type ed apps with no subcommand, and answers to ed apps list. |
ed apps quit |
Asks Edith to quit one app by name, bundle id or prefix, or everything except Finder and Edith with --all. |
| Code | When |
|---|---|
| 0 | The list was printed, the count was reported, or the quit request was posted. --help and --version also exit 0. |
| 1 |
ed apps quit was given neither an app name nor --all, or was given both. |
| 2 | The command line was wrong in the ordinary way: an unknown flag, a second positional argument, or a value the parser could not read. |
| 3 | The named app is not running, or the name is a prefix that matches more than one running app. |
| 4 |
ed apps quit was run while the Edith menu bar app was not running. Every form is affected, including the --all dry run. |
ed apps ls only ever exits 0 or 2. Code 1 is otherwise the catch-all for an
unexpected error escaping either command, and nothing on the listing path throws
one.
-
ed appswith no subcommand ised apps ls, anded apps listis the same command again. Completion offerslsandquit; thelistalias works but is not among the candidates. -
ed appanded appsare different groups. The singular one acts on Edith itself, open, quit, relaunch and update checks; the plural one acts on everything else running on the Mac. There is no prefix matching between subcommand names, so the two never collide, but the names are one letter apart and easy to mistype. - Nothing completes an app name.
ed apps quit <TAB>offers nothing at all, because the completion tree declares that argument free-form and the engine only proposes flags once the word you are on already starts with a-, soed apps quit -<TAB>is the one that lists--all,--force,--yes,--jsonand--help.ed apps lsis the discovery step. - The two argument errors on
quitexit 1 rather than 2 even though they read like usage errors. Gate on 1 as well as 2 if you are distinguishing a bad command line from a real failure. - Order of checks beats specificity of message. With Edith closed,
ed apps quit nosuchappexits 4 rather than 3, because the app check runs before the name is resolved. Start Edith before trusting a 3 or a 4 from this command to mean what it says. - The
--allpreview is not free of the app requirement either. It counts nothing and posts nothing, but it still exits 4 when Edith is closed. - The count
--allprints is computed byedand the quitting is done by the helper a moment later against its own fresh list. An app launched or closed in between changes what happens without changing what was printed. - An empty app name matches every app rather than none, because the empty string
is a prefix of everything:
ed apps quit ""exits 3 and lists all of them. It is a harmless way to see the resolver's ambiguity message. - Exact name beats exact bundle id beats unique prefix, and the prefix rule
applies to names only.
ed apps quit com.spotifymatches nothing even thoughed apps quit com.spotify.clientworks. - Object keys are sorted in every document this group emits, so two runs diff
cleanly. Array order is insertion order, which for
lsis the name order the table shows. - Both commands see only apps with a Dock presence. Menu bar agents, helpers and
daemons are invisible to
lsand unreachable byquit, which is also whyed apps quit --allnever touches the menu bar helper it is talking to. - The UI path and the CLI path funnel through the same
RunningAppshelper, so the System page's per-row quit button, itsQuit all appsheader button and these commands cannot disagree about what is protected or about what--forcemeans. The difference is which process runs it: the UI quits from the main window's process,edquits from the menu bar helper's. - The UI asks before it acts, with a confirmation dialog naming the app or the
count.
--yesis the command line's version of that dialog, and it exists only for--all. A single named app quits without any confirmation.
-
ed appfor acting on Edith itself rather than on other apps, including quitting and relaunching it. -
ed systemfor CPU and memory per process on this Mac, covering everything running and not only the apps with a Dock icon. -
ed machines powerfor the same idea on another machine, whereed machines killsignals a remote process. -
Conventions and contracts for the exit code table, the
--jsonguarantee and the full list of what needs the app running. -
The
edcommand line for the rest of the reference.
Auto-generated from docs/, edit the docs in the repo, not the wiki.
CLI reference
Companion
- Deploy
- Concepts
- Concepts Memory
- Concepts Ingestion
- Concepts Search
- Concepts Chat
- Concepts Learning
- Concepts Brain
- Concepts Friend
- Hosts
- Stack
- Status
- Doctor
- Search
- Index
- Ingest
- Episodes
- Sync
- Observations
- Reflect
- Beliefs
- Ask
- Extract
- Claims
- Corroborate
- Runs
- Chat
- Conversations
- Forget
- Export
- Import
- Erase
- Wipe
- Episode
- Nightly
- Reason
- Personas
- Council
- Lenses
- Core
- Why
- Hypotheses
- Predictions
- Commitments
- Discrepancies
- Calibration
- Inquire
- Entities
- Eval
- Standup
- Machines
- Baselines
- Connectors
- Facts
- Correct
- Weekly
- Db
Guides