| name | outline-cli |
| description | Search and manage Outline wiki documents and collections via the ol CLI |
Outline CLI (ol)
Use this skill when the user wants to interact with their Outline wiki/knowledge base.
Quick Reference
ol search "query" - Search documents
ol doc list - List documents
ol doc get <id> - Read a document
ol doc open <id> - Open document in browser
ol doc create --title "Title" --collection <id> - Create document
ol col list - List collections
ol account - List stored accounts; ol account use <id|name> sets the default
Output Formats
All list commands support:
--json - JSON output (essential fields)
--ndjson - Newline-delimited JSON (streaming)
--full - Include all fields in JSON
Global Options
--user <id|name> - Act as a specific stored account, matched by Outline user ID or display name. Each ol auth login stores an account (accounts can live on different Outline instances), and --user selects which one a command runs as; the token, base URL, and OAuth client ID all resolve from that account. Must be placed before the command, e.g. ol --user scott@example.com doc list. Omitted, commands use the default account. Overridden by OUTLINE_API_TOKEN when set.
Document References
Documents can be referenced by:
- URL ID (the slug suffix after the last hyphen)
- Full Outline URL (auto-extracted)
- Document ID
Commands
Search
ol search "query"
ol search "query" --limit 10
ol search "query" --collection <id>
ol search "query" --status published
ol search "query" --json
Documents
ol doc list --collection <id> --limit 25
ol doc list --sort title --direction ASC
ol doc get <id>
ol doc get <id> --raw
ol doc get <id> --json
ol doc open <id>
ol doc create --title "Title" --collection <id> --text "# Content"
ol doc create --title "Title" --parent <ref> --text "# Content"
ol doc create --title "Title" --collection <id> --file ./doc.md
ol doc update <id> --title "New Title"
ol doc update <id> --file ./updated.md
ol doc move <id> --collection <target-id>
ol doc move <id> --parent <ref>
ol doc archive <id>
ol doc unarchive <id>
ol doc delete <id> --confirm
Collections
ol col list
ol col get <id>
ol col create --name "Name" --description "Desc" --color "#hex"
ol col create --name "Private" --private
ol col update <id> --name "New Name"
ol col delete <id> --confirm
Authentication
ol auth login
ol auth login --base-url <url>
ol auth login --client-id <id>
ol auth login --callback-port <port>
ol auth login --read-only
ol auth login --json | --ndjson
ol auth status
ol auth status --json | --ndjson
ol auth logout
ol auth logout --json | --ndjson
ol auth token <token>
ol auth token <token> --base-url <url>
ol auth token
ol auth token view
ol --user <id|name> auth token view
Accounts
ol account
ol account list
ol account list --json | --ndjson
ol account current
ol account current --json | --ndjson
ol account use <id|name>
ol account use <id|name> --json
ol account remove <id|name>
ol account remove <id|name> --json
Update & Changelog
ol update
ol update --check
ol update --check --json
ol update --check --ndjson
ol update --channel
ol update switch --stable
ol update switch --pre-release
ol changelog
ol changelog -n 3
Examples
Find and read a document
ol search "onboarding" --json | jq '.[0].document.urlId'
ol doc get <urlId>
Create a document from a file
ol doc create --title "Meeting Notes" --collection <id> --file ./notes.md --publish
List all collections and their documents
ol col list --json
ol doc list --collection <id> --sort title --direction ASC
Bulk export with ndjson
ol doc list --ndjson --full | jq -r '.title'