-
Notifications
You must be signed in to change notification settings - Fork 4
CLI Download Ls
Lists what is in the queue, newest first.
Usage:
ed download ls [--active] [--limit <n>] [--json]
Options:
| Name | Type / values | Default | What it does |
|---|---|---|---|
--active |
flag | off | Keeps only entries that have not finished: queued, resolving and downloading. |
--limit <n> |
integer, 0 or more | 25 |
Shows at most this many. 0 shows all of them. |
--json |
flag | off | Emits one JSON document on stdout. |
There are no positional arguments.
Entries are numbered from 1 in the order they are printed, which is by the time
they were queued, newest first. That number is what ed download rm,
ed download retry and ed download cancel take, and it is recomputed on every invocation: removing
entry 1 renumbers everything below it, so read the list again between two
edits rather than counting down from an old listing.
That number always counts through the whole queue. A filtered ls --active
therefore keeps the same numbers as a bare ls, even when finished records are
hidden, so every displayed number remains a valid target for another command.
--active filters on "not finished", and an interrupted download counts as
finished, so a paused or cancelled entry does not appear even though its file
was never written. Use a bare ls to see those.
--limit is checked before the file is read, so a negative value exits 2 and
nothing is printed.
--json shape, an array with one object per entry:
[
{
"detail": "Night Drive.m4a",
"id": "58F41E66-1D3E-4C0C-9D89-63DC3C082D79",
"index": 1,
"kind": "audio",
"queuedAt": "2026-08-07T19:12:44Z",
"state": "done",
"title": "Night Drive",
"url": "https://youtu.be/dQw4w9WgXcQ"
},
{
"detail": "63.4%",
"index": 2,
"kind": "video",
"queuedAt": "2026-08-07T19:11:02Z",
"state": "downloading",
"title": "https://www.youtube.com/watch?v=aqz-KE-bpKQ",
"url": "https://www.youtube.com/watch?v=aqz-KE-bpKQ"
},
{
"detail": "ERROR: [youtube] Video unavailable",
"index": 3,
"kind": "audio",
"queuedAt": "2026-08-07T18:55:10Z",
"state": "failed",
"title": "https://youtu.be/aaaaaaaaaaa",
"url": "https://youtu.be/aaaaaaaaaaa"
}
]state is one of queued, resolving, downloading, done, failed and
interrupted. detail depends on the state: the progress yt-dlp last reported
for downloading (63.4%, or 63.4% (2/5) while working through a playlist),
the produced filenames for done, the whole error text for failed, the
reason for interrupted, and an empty string for queued and resolving.
title is the produced file's name without its extension once the download is
done, and the URL itself until then. kind is audio or video, and an
entry written by an older Edith that recorded no kind reads back as audio.
queuedAt is ISO 8601 in UTC. id is the stable persisted record identity.
The output filename template is not exposed.
Examples:
ed download ls
ed download ls --active
ed download ls --limit 0 --json
$ ed download ls
# STATE KIND WHAT
1 done audio Night Drive
2 downloading video https://www.youtube.com/watch?v=aqz-KE-bpKQ
3 queued audio https://youtu.be/dQw4w9WgXcQ
Behaviour: ls reads one file and writes nothing, needs neither the main
window nor the menu bar app, and never fails because Edith is closed. An empty
queue writes the download queue is empty to stderr, or nothing is downloading with --active, leaves stdout empty and exits 0. A list cut short
by --limit says so on stderr: showing 25 of 41; pass --limit 0 for all of them. Neither note is printed under --json, where an empty queue is an empty
array and a truncated list is silent, so a caller never has to parse prose.
The table has four columns and detail is not one of them: WHAT is the
title, so the error text of a failed entry is reachable only through --json.
In the cells it does print, newlines, carriage returns and tabs become spaces
and every other control character is dropped, so nothing in a title can break
the columns.
-
ed download, the rest of this group - All
edcommands
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