Outline Skills — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Outline Skills (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
Aggregate score unchanged between these scans.
The primary manifest — the file an agent reads to learn what this artifact does.
AI agent skill for interacting with Outline knowledge bases. Enables your AI assistant to manage documents, collections, search content, and handle team collaboration workflows.
/plugin marketplace add visualdust/outline-skills
/plugin install outline-skillsUsing vercel-labs/skills:
npx skills add visualdust/outline-skills -a codex # Codex
npx skills add visualdust/outline-skills -a cursor # Cursor
npx skills add visualdust/outline-skills -a windsurf # WindsurfInstall the CLI tool (required by the skill):
pip install outline-kb-cliCreate an API key in your Outline workspace settings:
Create API key in Outline
Set environment variables:
export OUTLINE_API_KEY="ol_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export OUTLINE_BASE_URL="https://app.getoutline.com/api" # Must include /api suffixOr create ~/.outline-skills/config.json:
{
"api_key": "ol_api_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"base_url": "https://app.getoutline.com/api"
}Once installed, your AI agent can interact with Outline:
Search Outline for onboarding documentation
Create a new document in the Engineering collection
List all collections in my workspace
Add a comment to the API documentationThe agent will automatically use the configured credentials to perform these operations.
While this repo is designed for AI agent integration, the underlying outline-kb-cli package can also be used as a standalone CLI tool. See skills/outline-skills/SKILL.md for detailed command reference.
By default, commands print compact, agent-friendly JSON summaries instead of the full Outline API response. These summaries keep the most useful IDs, names, URLs, counts, pagination, and bounded text previews while omitting noisy policy/token/nested fields. Use --raw when you need the complete API JSON, and --max-text-chars to tune preview length in summary mode:
# Compact summary output, suitable for agents and shell inspection.
outline-cli auth info
outline-cli search "deployment guide" --limit 5
# Complete Outline API response for debugging or custom scripts.
outline-cli auth info --raw
# Keep document metadata but suppress text bodies in the summary.
outline-cli documents info --id "doc-id" --max-text-chars 0API failures are written to stderr with contextual fields such as HTTP status, endpoint, URL, message, and an actionable hint for common cases (401, 403, 404, 429, and server errors). Invalid config-file warnings are also written to stderr so JSON stdout remains machine-readable.
For longer document/comment bodies, prefer file-backed inputs instead of large shell arguments:
outline-cli documents create --title "Title" --collection-id "coll-id" --text-file ./doc.md
outline-cli documents update --id "doc-id" --text-file ./doc.md
outline-cli comments create --document-id "doc-id" --data-file ./comment.md
outline-cli comments update --id "comment-id" --data-file ./comment.mdUse documents create-from-file when a local Markdown file contains relative image links such as . The workflow preflights all local assets before creating anything in Outline, creates a temporary unpublished document for attachment upload, uploads each unique asset once, rewrites the Markdown to Outline attachment URLs, and then publishes/updates the final document. If an API/upload step fails mid-flight, the CLI attempts to delete uploaded attachments and the temporary document, and the error message includes the cleanup outcome.
# First validate what would be uploaded without touching Outline.
outline-cli documents create-from-file \
--file ./report.md \
--collection-id "collection-id" \
--dry-run
# Publish the document and rewrite local image URLs to Outline attachment URLs.
outline-cli documents create-from-file \
--file ./report.md \
--collection-id "collection-id" \
--title "Experiment Report" \
--save-rewritten ./report.outline.mdSupported local references include inline Markdown images, reference-style Markdown images, and HTML <img src="..."> tags outside fenced/indented code blocks. Remote URLs, data: URLs, and anchors are left unchanged. By default, local assets must stay under the Markdown file's directory; use --asset-root to narrow that boundary, or --allow-outside-assets only when you intentionally want to upload files outside it. Add --upload-local-links to upload local non-image links such as PDFs.
For a single existing Outline document attachment, use:
outline-cli attachments upload --document-id "document-id" --file ./figure.pngoutline-skills/
├── outline_cli/ # Python CLI package
│ ├── cli.py # CLI implementation
│ ├── client.py # Outline API client
│ ├── local_markdown.py # Local Markdown asset preflight/rewrite workflow
│ └── config.py # Configuration loading
├── skills/outline-skills/ # Agent skill documentation
├── .claude-plugin/ # Plugin manifest
│ ├── plugin.json
│ └── marketplace.json
├── tests/ # Test suite
└── docs/ # Documentation assetsuv 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 -qKeep your Outline API key secure:
MIT License - see LICENSE.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.