---
name: "use-outline"
description: "Search, read, and manage Outline wiki documents. Use when: (1) searching
wiki for documentation, (2) reading wiki pages or articles, (3) listing wiki collections
or documents, (4) creating or updating wiki content, (5) exporting documents as
markdown. Works with any Outline wiki instance (self-hosted or cloud)."
license: "Apache-2.0"
metadata:
stage: "alpha"
source: "MIGRATED"
requires:
- "contract:use-contract"
author: "sanjay3290"
---
# Outline Wiki Skill
Search, read, create, and manage documents in any Outline wiki instance. Works with all AI clients supporting the Agent Skills Standard.
## Important: Script Path
All commands must use the **full path** to the script. The base directory for this skill is shown at the top of this skill context (e.g. `Base directory for this skill: /path/to/skill`). Use that path as `$SKILL_DIR` in every command below.
```bash
SKILL_DIR=""
OUTLINE="$SKILL_DIR/scripts/outline.py"
```
## Requirements
- Python 3.8+
- Dependencies: `pip install -r $SKILL_DIR/requirements.txt`
## Setup
1. Get your API key from your Outline wiki:
- Go to **Settings > API Tokens**
- Create a new token with appropriate permissions
2. Set the environment variables:
```bash
export OUTLINE_API_KEY=your-api-key-here
# Optional: for self-hosted instances
export OUTLINE_API_URL=https://your-wiki.example.com/api
```
## Usage
### Search documents
```bash
python3 $OUTLINE search "deployment guide"
python3 $OUTLINE search "API documentation" --limit 10
python3 $OUTLINE search "onboarding" --collection-id
```
### Read a document
```bash
python3 $OUTLINE read
python3 $OUTLINE read --json
```
### List collections
```bash
python3 $OUTLINE list-collections
python3 $OUTLINE list-collections --limit 50
```
### List documents in a collection
```bash
python3 $OUTLINE list-documents --collection-id
```
### Get collection details
```bash
python3 $OUTLINE get-collection
```
### Create a document
```bash
python3 $OUTLINE create --title "New Guide" --collection-id
python3 $OUTLINE create --title "Guide" --collection-id --text "# Content here"
python3 $OUTLINE create --title "Draft" --collection-id --draft
```
### Update a document
```bash
python3 $OUTLINE update --title "Updated Title"
python3 $OUTLINE update --text "New content"
python3 $OUTLINE update --publish
```
### Export document as markdown
```bash
python3 $OUTLINE export
python3 $OUTLINE export --output doc.md
```
### Test authentication
```bash
python3 $OUTLINE auth-info
```
## JSON Output
Add `--json` flag to any command for machine-readable output:
```bash
python3 $OUTLINE search "query" --json
python3 $OUTLINE read --json
```
## Operations Reference
| Command | Description | Required Args |
|---------|-------------|---------------|
| search | Full-text search | query |
| read | Get document content | document_id |
| list-collections | List all collections | - |
| list-documents | List docs (optionally in collection) | - |
| get-collection | Get collection details | collection_id |
| create | Create new document | --title, --collection-id |
| update | Update existing document | document_id |
| export | Export as markdown | document_id |
| auth-info | Test API connection | - |
## Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| OUTLINE_API_KEY | Yes | - | Your Outline API token |
| OUTLINE_API_URL | No | https://app.getoutline.com/api | API URL |
| OUTLINE_TIMEOUT | No | 30 | Request timeout (seconds) |
## Troubleshooting
| Error | Solution |
|-------|----------|
| API key not configured | Set OUTLINE_API_KEY environment variable |
| Authentication failed | Verify API key is valid and not expired |
| Connection timeout | Check OUTLINE_API_URL and network connectivity |
| Document not found | Verify document ID is correct |
| Permission denied | Check API token has required permissions |
## Exit Codes
- **0**: Success
- **1**: Error (auth failed, not found, invalid request)
## Workflow
1. Run `auth-info` to verify connection
2. Run `list-collections` to see available collections
3. Run `search` or `list-documents` to find content
4. Run `read` to get full document content
5. Use `create`/`update` to modify wiki content