Outline Skills
An Agent Skills package for operating Outline knowledge bases through outline-cli.
Manage documents, collections, search, comments, attachments, users/groups, sharing, and related workflows. Publish local Markdown with uploaded assets, and create rich-text document references using Outline's mention syntax.
One skill directory, shared across compatible agents. No separate skill format or OpenAI-specific manifest is required. The skill supplies instructions; the Python CLI supplies the API client.
Install
1. Install the CLI
pip install outline-kb-cli
The output controls below require CLI 0.2.0 or the current source checkout. Until that version is published, install from a checkout with pip install -e . in the repository root.
2. Install the skill
Use the cross-agent skills installer (requires Node.js/npm):
npx skills add visualdust/outline-skills --skill outline-skills
Choose your agent in the installer, or specify one explicitly:
npx skills add visualdust/outline-skills --skill outline-skills -a codex
npx skills add visualdust/outline-skills --skill outline-skills -a claude-code
Installation is project-local by default; add -g for user-wide installation. The installer supports agents including Claude Code, Codex, Gemini CLI, OpenCode, GitHub Copilot, and Cursor, and handles their installation directories.
For manual installation, copy the entire skills/outline-skills/ directory, including references/, into your agent's skills directory. Examples: .claude/skills/outline-skills/ for Claude Code or .agents/skills/outline-skills/ for Codex. Installation locations vary; consult your agent's documentation.
Claude Code users can alternatively install the same skill through the existing plugin:
/plugin marketplace add visualdust/outline-skills
/plugin install outline-skills
3. Configure Outline
Create an API key
Open your Outline workspace settings, go to API, and create an API key. Copy the key for the configuration step below; do not share it or commit it to version control.
Configure credentials
Set environment variables:
export OUTLINE_API_KEY="ol_api_..."
export OUTLINE_BASE_URL="https://outline.example.com/api"
The base URL should include /api. Alternatively, create ~/.outline-skills/config.json:
{
"api_key": "ol_api_...",
"base_url": "https://outline.example.com/api"
}
On Unix, protect the config with chmod 600 ~/.outline-skills/config.json.
Verify the connection
Run:
outline-cli auth info
If successful, the command returns your user and workspace information. For errors, see Troubleshooting.
Now ask your agent to search Outline, create a document, or manage a collection. Compatible agents can discover the skill from its description; explicit invocation syntax depends on the agent.
CLI examples
outline-cli search "deployment guide" --limit 5
outline-cli documents info --id "document-id" --fields data.id,data.title,data.revision
outline-cli documents info --id "document-id" --text-only
outline-cli documents info --id "document-id" --full-text
outline-cli documents create --title "Report" --collection-id "collection-id" --text-file ./report.md
outline-cli documents update --id "document-id" --text-file ./report.md
outline-cli comments create --document-id "document-id" --data-file ./comment.md
Get only what you need:
- Default summaries are compact JSON without repeated help metadata or expanded document authors.
--fieldsselects complete values from the original API JSON; dotted paths work across lists, preserving response shape. No unrelated raw fields are returned.documents info --text-onlyreturns exact full Markdown;--full-textincludes full Markdown in summary JSON. Neither requires a noisy raw response.--max-text-chars 0suppresses previews, including search context. Never edit from a truncated preview.--prettyindents JSON for humans;--rawreturns the full API response for debugging.
Errors/warnings go to stderr. Put connection flags such as --base-url before the subcommand. See output controls for field paths and mode constraints.
For Markdown with local images/assets, use documents create-from-file instead of --text-file, starting with --dry-run:
outline-cli documents create-from-file --file ./report.md --collection-id "collection-id" --dry-run
Documentation
- Skill instructions
- Command reference
- Output controls
- Setup and authentication
- Local Markdown publishing
- Troubleshooting
Development
uv run --extra dev python -m ruff check outline_cli tests
uv run --extra dev python -m mypy outline_cli
uv run --extra dev python -m pytest -q
License
MIT.
Metadata
Release files for outline-kb-cli 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| outline_kb_cli-0.2.0.tar.gz | 53.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| outline_kb_cli-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 98.0 kB
Release files / outline_kb_cli-0.2.0.tar.gz
| Download URL | outline_kb_cli-0.2.0.tar.gz |
|---|---|
| Size | 53.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b45abf148bc6e4fdf65681b92bdeab6bf5729744476dd44776d07e64251640aa
|
|
BLAKE2b-256 checksum How to use checksums |
a6ab9dbf4bc2a7cf4cf6a1fb13f3c0b27b566ed10aca41bfaf01c8647b5c0d69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / outline_kb_cli-0.2.0-py3-none-any.whl
| Download URL | outline_kb_cli-0.2.0-py3-none-any.whl |
|---|---|
| Size | 44.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fcf4c945aa8ebce9fc8cf931483ef31d19a8155b89c1655c7c7a9a5545c7a8a5
|
|
BLAKE2b-256 checksum How to use checksums |
bdb72a33c20b2a5bddb1efff6ac5b2457246802259b58aaafa4945ad529ab2ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|