smithery.ai

outline-cli

Allow droids to interact with Outline Wiki via the outlinectl CLI (auth, collections, docs) with automation-friendly JSON output.

First seen Apr 13, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,491 B
  • docs SUMMARY.md 148 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

This skill enables droids to operate an Outline Wiki instance through the included .NET CLI (Outlinectl.Cli).

Use this skill for:

  • Authenticating against an Outline instance
  • Listing collections
  • Searching, getting, creating, updating, and exporting documents

For automation, prefer --json output and non-interactive commands.

Configuration

This skill is environment-first. Droids should read configuration from environment variables and only pass explicit CLI options when overriding defaults.

  • OUTLINEBASEURL (recommended): Outline instance URL (e.g. https://docs.example.com)
  • OUTLINEAPITOKEN (recommended): Outline API token
  • profile (optional): Defaults to default (used for local config/credential store)

Notes:

  • The CLI currently does not read a default collection ID from environment variables.
  • For docs search, provide --collection-id and/or --parent-id explicitly when you need scoped results.
  • when parent-id is provided the user is looking for a sub-document, search all sub-documents of the parent-id for the information the user is looking for.

Safety and Secrets

  • Never print or log API tokens.
  • Default login is environment-based (see below). Use --token-stdin when you cannot set OUTLINEAPITOKEN safely (e.g., piping from a secret manager).
  • For runtime auth (API calls), OUTLINEAPITOKEN overrides the stored token.

How to Run

From the repo (recommended for droids working in this workspace):

cd 1-Presentation\Outlinectl.Cli
dotnet run -- --help

Notes:

  • Everything after -- is passed to the CLI.
  • Global options are supported on all commands: --json, --quiet, --verbose.

Output Contract (JSON Mode)

When --json is set, stdout is a single JSON envelope:

{
	"ok": true,
	"command": "docs.search",
	"data": { },
	"meta": { "durationMs": 0, "version": "1.0.0" }
}

On errors:

{
	"ok": false,
	"command": "docs.get",
	"error": { "code": "", "message": "...", "hint": "..." },
	"meta": { "durationMs": 0, "version": "1.0.0" }
}

Exit Codes (Practical Handling)

  • 0: Success
  • 2: Invalid input / missing required values (e.g., missing token)
  • 3: Not logged in (local status check)
  • 4: Document not found / get failed
  • 10: Unknown/unhandled error
  • 130: Cancelled (Ctrl+C)

Core Workflows

1) Authenticate First (Required)

Before running any commands, the agent MUST authenticate and confirm it succeeded.

Success criteria:

  • Exit code is 0.
  • If --json is used, stdout JSON envelope has "ok": true for auth.login.

Default (environment-first, non-interactive):

If --base-url and --token are omitted, outlinectl will pull from OUTLINEBASEURL and OUTLINEAPITOKEN.

dotnet run --project .\\1-Presentation\\Outlinectl.Cli -- auth login --profile default --json


Then immediately verify local auth status:

dotnet run --project .\1-Presentation\Outlinectl.Cli -- auth status --json

If the agent fails to authenticate, it MUST exit and inform the user that it failed to authenticate.

### 2) Verify Auth Status

dotnet run --project .\1-Presentation\Outlinectl.Cli -- auth status --json


### 3) List Collections

dotnet run --project .\1-Presentation\Outlinectl.Cli -- collections list --limit 50 --offset 0 --json


### 4) Search Documents

Scope search to a collection (and optionally a parent document subtree).

dotnet run --project .\1-Presentation\Outlinectl.Cli -- docs search --query "policy" --collection-id "<COLLECTIONID>" --parent-id "<PARENTDOC_ID>" --limit 10 --offset 0 --json


Notes:
- `--query` is required by the CLI.
- For automation, treat `--collection-id` and `--parent-id` as required inputs if you don't have these values ask the user for them.

### 5) Get Document

Automation / structured:

dotnet run --project .\1-Presentation\Outlinectl.Cli -- docs get --id "<DOC_ID>" --format json --json


Human-readable markdown (stdout is raw markdown text; do NOT use `--json`):

dotnet run --project .\1-Presentation\Outlinectl.Cli -- docs get --id "<DOC_ID>" --format markdown


### 6) Create Document

From stdin (preferred for large content):

@"

Title

Body goes here. "@ | dotnet run --project .\\1-Presentation\\Outlinectl.Cli -- docs create --title "My Doc" --stdin --json


From file:

dotnet run --project .\1-Presentation\Outlinectl.Cli -- docs create --title "My Doc" --collection-id "<COLLECTION_ID>" --file ".\doc.md" --json


### 7) Update Document

dotnet run --project .\1-Presentation\Outlinectl.Cli -- docs update --id "<DOC_ID>" --title "New Title" --file ".\updated.md" --json


### 8) Export Document

Exports markdown files to a directory (optionally including descendants):

dotnet run --project .\1-Presentation\Outlinectl.Cli -- docs export "<DOC_ID>" --output-dir ".\export" --subtree --json


## Interactive Shell (Optional)

Use the shell only for manual exploration; avoid it for automation:

dotnet run --project .\1-Presentation\Outlinectl.Cli -- shell


Inside the shell, run commands as you would normally:

docs search --query "onboarding" --json auth status --json exit