Ersetzt: wiki-js-v2 (nur Pages + Assets)
FeatureV2V3Pages (CRUD)✅✅Assets (Upload/List)✅✅Move/Copy Pages❌✅Page History❌✅Version Restore❌✅Render (HTML/PDF)❌✅Search (Full-Text + Tags)❌✅Page Tree/Hierarchy❌✅Tags (CRUD)❌✅Asset Folders✅✅Asset Delete❌✅Multi-Locale✅✅Retry + Backoff✅✅Path-First + ID✅✅
bash
# Skill bereits installiert unter:
~/.openclaw/workspace/skills/wiki-js-v3/
# CLI-Wrapper (optional, für direkten Terminal-Zugriff):
chmod +x ~/.openclaw/workspace/skills/wiki-js-v3/bin/wiki.js
ln -s ~/.openclaw/workspace/skills/wiki-js-v3/bin/wiki.js ~/.local/bin/wiki
Environment:
bash
export WIKIJS_URL="https://your-wiki.example.com"
export WIKIJS_TOKEN="your_api_key_here"
export WIKIJS_LOCALE="de" # Optional, default: de
CategoryOperationsPagessingle, singleByPath, list, create, update, delete, move, render, history, restoreVersionSearchsearch(query, limit)Tagslist, create, deleteAssetslist, createFolder, delete
EndpointUse CasePOST /uFile upload (multipart/form-data)GET /f/:hash/:filenameStatic asset serving
bash
# Create or update (idempotent)
wiki upsert docs/setup "Setup Guide" @content.md "setup,wiki"
wiki upsert docs/api "API Reference" "## Overview\n..." "api,docs"
# Get page content
wiki get docs/setup
wiki get 42 # by ID
# Delete page
wiki delete docs/old-page
wiki delete 42
# Move page (changes path)
wiki move docs/old docs/new
# Copy page (creates new page)
wiki copy docs/template docs/new-page
# Show page history
wiki history docs/setup
# Restore specific version
wiki restore docs/setup --version=3
# Render page
wiki render docs/setup --format=html
wiki render docs/setup --format=pdf > setup.pdf
bash
# Full-text search
wiki search "docker"
# With tag filter
wiki search "kubernetes" --tags="devops,cloud"
# Limit results
wiki search "api" --limit=50
bash
# List all pages
wiki tree
# Filter by path prefix
wiki tree --path=docs
# Control depth
wiki tree --depth=5
bash
# List all tags
wiki tags
# Create tag
wiki tags create "new-feature"
# Delete tag
wiki tags delete "deprecated"
bash
# List assets
wiki assets
wiki assets --folder=images
wiki assets --kind=IMAGE
# Upload file
wiki upload screenshot.png
wiki upload doc.pdf --folder=documents --name="manual.pdf"
# Delete asset
wiki asset-delete 42
# Create folder
wiki mkdir 0 images "Bilder"
bash
--pretty, -p Human-readable output (default: JSON)
--locale, -l de Locale override
--private Create private page
--draft Create unpublished page
ErrorHandling413 Payload Too LargeThrows descriptive error (chunking not auto-applied for pages)401 UnauthorizedClear token error messageECONNREFUSEDAuto-retry with exponential backoff (3 attempts)Timeout30s default, configurable via WIKIJS_TIMEOUT
text
bin/wiki.js
├── GraphQL Client (query, mutation)
├── REST Upload (form-data)
├── Path Resolution (singleByPath)
├── CLI Parser (arg parsing)
└── Output Formatter (JSON / Pretty)
Dependencies:
form-data for file uploads (installed on-demand)WIKIJS_TOKEN)/)bash
# Write content to file
cat > /tmp/api.md << 'EOF'
# API Reference
## Authentication
All requests require a Bearer token...
## Endpoints
- `GET /api/v1/pages` - List pages
- `POST /api/v1/pages` - Create page
EOF
# Upsert to Wiki
wiki upsert docs/api "API Reference" @/tmp/api.md "api,reference" --pretty
bash
# Upload image
wiki upload screenshot.png --folder=images --name="api-auth-flow.png"
# Output: {"id":47,"url":"/f/a3f9b2/api-auth-flow.png",...}
# Create page with embedded image
wiki upsert docs/api-auth "API Authentication" '' "api"
bash
#!/bin/bash
for file in docs/*.md; do
name=$(basename "$file" .md)
wiki upsert "docs/$name" "$name Documentation" "@$file" "docs"
done
V2 CommandV3 Commandwiki-v2 upsert ...``wiki upsert ...``wiki-v2 get ...``wiki get ...``wiki-v2 delete ...``wiki delete ...``wiki-v2 search ...``wiki search ...``wiki-v2 upload ...``wiki upload ...``wiki-v2 assets ...``wiki assets ...``wiki-v2 mkdir ...``wiki mkdir ...–wiki move ...–wiki copy ...–wiki history ...–wiki restore ...–wiki render ...–wiki tree ...–wiki tags ...–wiki asset-delete ...
IssueSolutionWIKIJS_TOKEN not set``export WIKIJS_TOKEN=...``Page not foundCheck path (no leading /)GraphQL Error: UnauthorizedToken invalid or expiredGraphQL Error: ForbiddenAPI key lacks write permissions – create new key with write access in Admin UIUpload failed: 413File too large (>10MB)Timeout after 30sIncrease WIKIJS_TIMEOUT=60000``Cannot read properties of undefined (reading 'map')Fixed in V3.1 – always include tags: [] in update mutations
Wiki.js API keys have per-key permissions, not per-group permissions.
JWT ClaimMeaningapi:1API Key ID 1 – may have different permissions than Key 2grp:1Group ID 1 – does NOT determine write access
If update returns "Forbidden":
WIKIJS_TOKEN{WIKIJS_URL}/graphql-playgroundPOST {WIKIJS_URL}/uGET {WIKIJS_URL}/f/:hash/:filenameVersion: 3.0 | Status: All-encompassing | Replaces: wiki-js-v2