Passage CLI
Hosted Markdown from your terminal.
Use `passage` to let humans and agents create, read, and update the same private Markdown documents that live in the browser.
Install
Install the CLI in one command
macOS or Linux
The installer downloads the latest release, verifies the checksum, and puts `passage` on your PATH.
curl -fsSL https://raw.githubusercontent.com/owainlewis/passage-cli/main/install.sh | bash
passage versionManual downloads
Download archives and checksums from GitHub releases when you want to install by hand.
# Latest release
https://github.com/owainlewis/passage-cli/releases/latestAuth
Create an API token in the browser
- Open the account menu in the Passage editor while signed in.
- Create an API token with a name like `Laptop` or `Agent runner`.
- Copy the token when it appears. Passage only shows the plaintext once.
- Run `passage login` and paste the token.
- Revoke old tokens from the same account menu when you are done with them.
passage login
passage auth status --checkCommands
First commands for humans and agents
passage loginSave your Passage origin and API token.passage auth status --checkConfirm the saved token works.passage new "Draft"Create a hosted Markdown document.passage listList your active documents.passage cat <doc-id>Print Markdown to stdout.passage pull <doc-id>Alias for reading a document body.passage push <doc-id> ./draft.mdReplace a document from a file.passage append <doc-id> ./notes.mdAppend file content.passage replace <doc-id> ./draft.mdReplace a document from a file.passage new "Research notes"
passage list
passage cat <doc-id>
passage replace <doc-id> ./notes.md
passage list --jsonAgent loop
Use clean Markdown as context
Share a document when another person needs the page URL. Use raw `.md` URLs or CLI output when an agent needs the Markdown body. API tokens authenticate private document commands, while public raw links stay read-only and explicit.
# Share returns htmlPath and markdownPath
/d/<share-token>.md
# Unshare revokes both URLs