outline-cli
Search and manage Outline wiki documents and collections via the ol CLI
معلومات المصدر
- المستودع
- Doist/outline-cli
- آخر نشاط في المصدر
- ٢٣ أكتوبر ٢٠٢٦ في ١١:٤٥
- لغة SKILL.md المكتشفة
- الإنجليزية
- النجوم
- ٢٠
- التفرعات
- ٢
خيارات التثبيت
يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.
مراجعة ملفات المصدر
اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.
عرض SKILL.md
SKILL.md
تعليمات المصدر · معاينة للقراءة فقط- 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
```bash
ol search "query"
ol search "query" --limit 10
ol search "query" --offset 25 # next page of results
ol search "query" --collection <id>
ol search "query" --status published
ol search "query" --json
```
### Documents
```bash
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 update <id> --publish # Publish a draft (create makes drafts unless --publish)
ol doc update <id> --publish --collection <ref> # Publish a draft that has no collection (web UI drafts)
ol doc update <id> --file ./doc.md --if-updated-at <updatedAt> # Fail if the doc was saved since <updatedAt> (see Examples)
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
```bash
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
```bash
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 (refreshes an expiring OAuth token first; 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
```bash
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
```bash
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
```bash
ol search "onboarding" --json | jq '.[0].document.urlId'
ol doc get <urlId>
```
### Create a document from a file
```bash
ol doc create --title "Meeting Notes" --collection <id> --file ./notes.md --publish
```
### Edit a document without overwriting someone else's changes
```bash
ts=$(ol doc get <id> --json | jq -r '.updatedAt')
ol doc get <id> --raw > doc.md # then edit doc.md
ol doc update <id> --file doc.md --if-updated-at "$ts"
```
If the document was saved after `$ts`, the update fails with `DOCUMENT_CHANGED`, or with Outline's "Document has been modified since the provided revision" when the save lands during the update; re-read and retry. Edits not yet saved from an open editor are not detected.
### List all collections and their documents
```bash
ol col list --json
ol doc list --collection <id> --sort title --direction ASC
```
### Bulk export with ndjson
```bash
ol doc list --ndjson --full | jq -r '.title'
```
عرض على GitHub