yore is Yore in a terminal. It asks the same API the site and the MCP server ask, so it gives the same answers, and it checks an export on its own, offline.
Install
The command is one binary, built from its source with Rust's Cargo. In a checkout of the source:
cargo build --release
ln -sf "$PWD/target/release/yore" ~/.local/bin/yore
Sign in
Make a token on the Agents page, then:
yore login --url https://yore.steddle.com
The command asks for the token, keeps it in ~/.yore/config.json, readable by you alone, and prints who is connected. YORE_TOKEN and YORE_URL in the environment take the place of the file.
yore status
A plan
yore plan create --host tesla.com --host teslamotors.com --from 2014-01-01 --until 2024-12-31
yore plan list
yore plan tree <plan> --under /model3
yore plan update <plan> --path / --path "/model3*" --locale nl_nl --locale "" --density monthly
yore plan read <plan>
yore plan pages <plan> --sort captures
yore plan untick <plan> --under /model3/design
yore plan coverage <plan>
yore plan run <plan>
plan show, plan pause, plan tick, plan changes and plan delete do what they say. A plan is named by its id, as plan list prints it. Make a plan explains each step.
A page
yore page show <plan> <page>
yore page version <plan> <page> 12
yore page compare <plan> <page> 11 12
yore page compare <plan> <page> 11 12 --whole
yore page languages <plan> <page> --at 2019-03-01
yore phrase <plan> "full self-driving hardware"
A page is named by its id, as plan pages prints it, and a version by its position, as page show prints it. page compare prints each changed section with the words that went as [-word-] and the words that came as {+word+}.
Evidence
yore export make <plan>
yore export list <plan>
yore export download <plan> <export> -o export.zip
yore exhibit <plan> <page> 11 12 -o exhibit.pdf
yore share make <plan> <page> 11 12
yore share list <plan>
yore share revoke <plan> <token>
yore blob <sha256>
exhibit checks the PDF it downloads against the SHA-256 Yore states for it. blob writes the bytes a hash names to standard output and refuses them if they don't hash to that name, so yore blob <sha256> | shasum -a 256 prints the hash you asked for.
Going forward
yore watch add <plan> --page <page>
yore watch list <plan>
yore watch check <plan> <page>
yore watch log <plan> <page>
yore watch remove <plan> --page <page>
Verify an export, offline
yore verify export.zip
verify needs no token and makes no request. It reads the export's manifest.json, prints the manifest's own SHA-256, and checks every file the manifest lists: that it's there, that it hashes to its name, and that its size is as stated. For every capture it recomputes the Internet Archive's digest and compares it with what the manifest says. A file the manifest doesn't list fails the check too. It takes the zip, or a directory the zip was unpacked into.
With --online it also asks Yore whether it issued that manifest, and when.
For a script
--json prints the service's answer as it was sent: the envelope, byte for byte. A failure prints its envelope too, with the sentence for a human on standard error.
yore plan coverage <plan> --json
Exit codes
| Code | Means |
|---|---|
| 0 | It worked. |
| 1 | The command or the request was wrong as asked. |
| 2 | Not found. |
| 3 | The network: Yore couldn't be reached. |
| 4 | Yore refused or failed: no valid token, too many requests, the archive didn't answer. |
| 5 | Something on this machine: a file that can't be read or written. |
| 6 | An export that doesn't verify. |