outline-cli

star 13

Search and manage Outline wiki documents and collections via the ol CLI

Doist By Doist schedule Updated 5/24/2026

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>                           # Rendered markdown
ol doc get <id> --raw                     # Raw markdown
ol doc get <id> --json
ol doc open <id>                          # Open in browser
ol doc create --title "Title" --collection <id> --text "# Content"
ol doc create --title "Title" --parent <ref> --text "# Content"  # Nest under parent (collection inferred)
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>           # Move to collection root
ol doc move <id> --parent <ref>                    # Nest under parent (collection inferred)
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                          # OAuth login (opens browser); prompts for base URL + client ID if needed
ol auth login --base-url <url>         # Specify Outline base URL for this login (saved for future use)
ol auth login --client-id <id>         # Specify OAuth client ID for this login (saved for future use)
ol auth login --callback-port <port>   # Override local OAuth callback port
ol auth login --read-only              # Request read-only scopes (where supported by the Outline instance)
ol auth login --json | --ndjson        # Machine-readable success envelope
ol auth status                         # Show current auth state
ol auth status --json | --ndjson       # Machine-readable status envelope ({id, team, baseUrl, source})
ol auth logout                         # Clear saved credentials
ol auth logout --json | --ndjson       # Machine-readable logout envelope ({ok: true}; --ndjson is silent)
ol auth token <token>                  # Save a personal API token (validates via auth.info, resolves identity)
ol auth token <token> --base-url <url> # Save a token for a specific Outline instance
ol auth token                          # Prompt for the token (hidden input; errors in non-interactive shells)
ol auth token view                     # Print the bare stored token to stdout for scripts (no newline when piped; refuses when OUTLINE_API_TOKEN is set)
ol --user <id|name> auth token view    # Print a specific stored account's token (--user is a root flag, before the command)

Accounts

ol account                             # List stored accounts (default subcommand)
ol account list                        # List stored accounts, default marked
ol account list --json | --ndjson      # Machine-readable list ({accounts, default}; --ndjson streams one per line)
ol account current                     # Show the active account (honours --user and OUTLINE_API_TOKEN)
ol account current --json | --ndjson   # Discriminated by source: {source:"stored", account:{id, label, teamName, baseUrl, isDefault}} | {source:"env"} | {source:"legacy"}
ol account use <id|name>               # Set the default account used when --user is omitted
ol account use <id|name> --json        # Machine-readable envelope ({ok: true, default: <id>}; --ndjson is silent)
ol account remove <id|name>            # Remove a stored account (clears keyring + config entry)
ol account remove <id|name> --json     # Machine-readable envelope ({ok: true, removed: <id>}; --ndjson is silent)

Update & Changelog

ol update                        # Update CLI to latest version
ol update --check                # Check for updates without installing, show channel
ol update --check --json         # Check for updates as a JSON envelope
ol update --check --ndjson       # Check for updates as NDJSON output
ol update --channel              # Show current update channel
ol update switch --stable        # Switch to stable release channel
ol update switch --pre-release   # Switch to pre-release (next) channel
ol changelog                     # Show recent changelog entries
ol changelog -n 3                # Show last 3 versions

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'
Install via CLI
npx skills add https://github.com/Doist/outline-cli --skill outline-cli
Repository Details
star Stars 13
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator