CLI Quick Reference

GEO Wiki CLI command quick reference for Agent quick use

# GEO Wiki CLI — Agent Skill GEO Wiki Pro command-line management tool. Enables AI Agents to automatically manage knowledge bases. ## Installation ```bash # Requires Node.js >= 18 npm install -g geowiki-cli # Verify installation geo status ``` ## Login ```bash # Token login (recommended) geo login --url https://geowiki.pro --token geo_xxxxx # Password login geo login --url https://geowiki.pro --user <username> --pass <password> ``` After login, Token is automatically saved locally, and subsequent commands automatically include authentication. ## Document Management ```bash # List documents geo doc list --category <category> --lang zh --json # Create document geo doc create --file ./article.md --category <category> --lang zh # Get document geo doc get --slug <slug> --lang zh --json # Update document geo doc update --slug <slug> --file ./updated.md # Update category only geo doc update --slug <slug> --category new-category # Update sort only geo doc update --slug <slug> --sort 0 # Delete document (move to trash) geo doc delete --slug <slug> # Batch reorder geo doc reorder --orders "slug1:0,slug2:1,slug3:2" ``` ## Category Management ```bash geo category list --json geo category create --name "Category Name" --slug category-slug geo category update --slug <slug> --name "New Name" geo category delete --slug <slug> ``` ## Tag Management ```bash geo tag list --json geo tag create --name "Tag Name" --slug tag-slug geo tag delete --slug <slug> ``` ## Media Upload ```bash geo media upload --file ./image.png geo media upload --file ./document.pdf --directory docs geo media list --json ``` ## Configuration Management ```bash geo config get --json geo config update --site-name "New Site Name" geo config update --hero-title "New Title" --hero-subtitle "New Subtitle" geo config update --featured-slugs "slug1,slug2,slug3" ``` ## User Management ```bash geo user list --json geo user create --username <user> --password <pass> --role editor geo user update --id <user-id> --role admin geo user reset-password --id <user-id> geo user delete --id <user-id> # API Token management geo user token list --json geo user token delete --id <token-id> ``` ## Other Commands ```bash geo search "keyword" --json # Search documents geo stats --json # Dashboard statistics geo draft list --json # Draft management geo feedback list --json # Feedback management geo guestbook list --json # Guestbook management geo geo status # GEO optimization status geo geo report --json # GEO analytics report geo geo rebuild # Rebuild llms.txt / sitemap ``` ## Global Options All commands support the `--json` flag for structured JSON output, suitable for Agent parsing. ## Agent Notes ### 1. Don't Edit NAS Files Directly with sed ```bash # Wrong: File gets truncated, sed only keeps modified parts ssh user@nas "sed -i 's/old/new/' /path/to/file.md" # Correct: Use CLI or API to update geo doc update --slug <slug> --file ./updated.md ``` **Reason**: `sed -i` may cause content loss outside frontmatter when processing multi-line files. ### 2. Chinese Filenames Need Encoding CLI and frontend automatically encode filenames with `encodeURIComponent()`. When calling API directly, manual encoding is required: ```bash # Wrong curl -H "X-Original-Filename: 测试.pdf" ... # Correct curl -H "X-Original-Filename: %E6%B5%8B%E8%AF%95.pdf" ... ``` ### 3. All Write Operations Require CSRF Token CLI handles this automatically. When calling API directly, extract `XSRF-TOKEN` from Cookie and include in request header. ### 4. Supported File Upload Types Images: JPG, PNG, GIF, WebP Videos: MP4, WebM Audio: MP3, WAV, OGG Documents: PDF, DOC, DOCX, TXT, MD 3D Models: STEP, STP, IGS ## Agent Usage Examples ```bash # Complete workflow: Login -> Create document -> Rebuild GEO geo login --url https://geowiki.pro --token geo_xxxxx geo doc create --file ./new-article.md --category guide --lang zh geo geo rebuild # Batch import for f in ./docs/*.md; do geo doc create --file "$f" --category docs --lang zh done # Process search results geo search "API" --json | jq '.[] | {slug, title}' ```