CLI Quick Reference

GEO Wiki CLI command cheat sheet for quick Agent usage

GEO Wiki Pro v1.0.7 command-line management tool. Enables AI Agents to manage knowledge bases automatically. ## Installation ```bash # Requires Node.js >= 18 npm install -g geowiki-cli # Verify installation geo status ``` ## Login ```bash # Token login (recommended, valid for 90 days) geo login --url https://geowiki.pro --token geo_xxxxx ``` After login, the token is saved locally and subsequent commands carry authentication automatically. ## Health Check ```bash geo health # Check server status (no login required) geo health --json # JSON format output ``` ## Document Management ```bash # List documents geo doc list --category <category> --lang zh --json # Create document (from file) geo doc create --file ./article.md --category <category> --lang zh # Create document (inline content) geo doc create --title "Title" --category docs --slug my-doc --content "# Body content" # Get document geo doc get --slug <slug> --lang zh --json # Update document (from file) geo doc update --slug <slug> --file ./updated.md --lang zh # Update title geo doc update --slug <slug> --title "New Title" --lang zh # Update description geo doc update --slug <slug> --description "New Description" --lang zh # Update author geo doc update --slug <slug> --author "John Doe" --lang zh # Update tags geo doc update --slug <slug> --tags "tag1,tag2" --lang zh # Update notice geo doc update --slug <slug> --notice "This document has been updated" --lang zh # Update sort order only geo doc update --slug <slug> --sort 0 # Update category only geo doc update --slug <slug> --category new-category # Rename URL slug (syncs all languages) geo doc slug-rename --slug old-name --new-slug new-name # Delete document (moves to trash, specify language) geo doc delete --slug <slug> --lang zh --yes # 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> ``` ## Draft Management ```bash geo draft list --json # List drafts geo draft get --slug <slug> # View draft content geo draft publish --slug <slug> --lang zh # Publish draft geo draft publish --slug <slug> --lang en # Publish draft (specific language) geo draft delete --slug <slug> --lang zh # Delete draft geo draft delete --slug <slug> --lang en # Delete draft (specific language) ``` ## Other Commands ```bash geo search "keyword" --lang zh --json # Search documents geo stats --json # Dashboard statistics 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. Do not use sed to edit files on the NAS directly ```bash # Wrong: file gets truncated, sed only retains the modified portion 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` on multi-line files may cause content outside the frontmatter to be lost. ### 2. Chinese filenames need encoding The CLI and frontend automatically encode filenames with `encodeURIComponent()`. When calling the API directly, manual encoding is required: ```bash # Wrong curl -H "X-Original-Filename: test.pdf" ... # Correct curl -H "X-Original-Filename: %E6%B5%8B%E8%AF%95.pdf" ... ``` ### 3. All write operations require a CSRF Token The CLI handles this automatically. When calling the API directly, extract `XSRF-TOKEN` from the cookie and include it in the request header. ### 4. Supported file upload types Images: JPG, PNG, GIF, WebP Video: 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}' ```