CLI Command Reference
GEO Wiki Pro CLI command reference, covering all 15 commands with parameters and usage
# CLI Command Reference
> GEO Wiki Pro CLI provides 15 commands covering document management, category management, tag management, search, configuration, user management, and more.
---
## Command Overview
| Command | Description | Requires Login |
|---------|-------------|----------------|
| `geo login` | Login to server | No |
| `geo logout` | Logout and clear credentials | No |
| `geo status` | View connection status | No |
| `geo doc` | Document management (CRUD + reorder + trash) | Yes |
| `geo category` | Category management (CRUD + reorder) | Yes |
| `geo tag` | Tag management (CRUD) | Yes |
| `geo search` | Search documents | No |
| `geo config` | Site configuration read/write | Yes |
| `geo user` | User management + Token management | Yes |
| `geo draft` | Draft management (list/view/publish/delete) | Yes |
| `geo stats` | Dashboard statistics | Yes |
| `geo feedback` | User feedback management | Yes |
| `geo guestbook` | Guestbook management | Yes |
| `geo media` | Media file upload/list/delete | Yes |
| `geo geo` | GEO status, report, rebuild | Yes |
---
## Authentication Commands
### geo login
Login to GEO Wiki Pro server, supporting two authentication methods.
#### Token Login (Recommended)
```bash
geo login --url https://geowiki.pro --token geo_xxxxx
```
| Parameter | Short | Description | Required |
|-----------|-------|-------------|----------|
| `--url` | `-u` | Server address | Yes |
| `--token` | `-t` | API Token | Yes |
> **Recommended**: Token login is valid for 90 days, doesn't require CAPTCHA, suitable for CLI and automation scripts. Tokens can be generated in the admin panel under "Settings -> API Token".
#### Password Login
```bash
geo login --url https://geowiki.pro --user admin --pass your-password
```
| Parameter | Short | Description | Required |
|-----------|-------|-------------|----------|
| `--url` | `-u` | Server address | Yes |
| `--user` | `-U` | Username | Yes |
| `--pass` | `-p` | Password | Yes |
::: warning
Password login requires CAPTCHA verification, suitable for browser scenarios. Token login is recommended.
:::
### geo logout
Clear locally saved authentication information.
```bash
geo logout
```
### geo status
View current connection status and user information.
```bash
geo status
```
---
## Document Commands
### geo doc list
List all documents.
```bash
geo doc list
geo doc list --category can-motion
geo doc list --lang zh --json
```
| Parameter | Short | Description | Required |
|-----------|-------|-------------|----------|
| `--category` | | Filter by category | No |
| `--lang` | `-l` | Language (default zh) | No |
| `--page` | | Page number (default 1) | No |
| `--limit` | | Items per page (default 50) | No |
### geo doc get
Get document content.
```bash
geo doc get --slug quick-start
geo doc get --slug quick-start --lang en
geo doc get --slug quick-start --format json
```
| Parameter | Short | Description | Required |
|-----------|-------|-------------|----------|
| `--slug` | `-s` | Document slug | Yes |
| `--lang` | `-l` | Language (default zh) | No |
| `--format` | `-f` | Output format: markdown or json | No |
### geo doc create
Create new document.
```bash
geo doc create --file ./my-doc.md --category can-motion --lang zh
geo doc create --file ./my-doc.md --sort 1
```
| Parameter | Short | Description | Required |
|-----------|-------|-------------|----------|
| `--file` | `-f` | Markdown file path | Yes (or --title) |
| `--title` | `-t` | Document title (when no file) | Yes (or --file) |
| `--category` | `-c` | Category slug | No |
| `--slug` | `-s` | Custom slug | No |
| `--lang` | `-l` | Language code (default zh) | No |
| `--tags` | `-T` | Comma-separated tags | No |
| `--author` | `-a` | Author (default Agent) | No |
| `--sort` | | Sort value (default 999) | No |
::: tip
File needs to include YAML frontmatter (title, slug, category, tags, author). If file contains frontmatter, command-line arguments can be omitted, CLI will extract automatically.
:::
### geo doc update
Update document. Supports single-field updates — only modify specified fields, others remain unchanged.
```bash
# File update (safest)
geo doc update --slug my-doc --file ./updated.md
# Update sort value only
geo doc update --slug my-doc --sort 0
# Update category only
geo doc update --slug my-doc --category new-category
# Update content only
geo doc update --slug my-doc --content "# New Title\n\nNew content"
```
| Parameter | Short | Description | Required |
|-----------|-------|-------------|----------|
| `--slug` | `-s` | Document slug | Yes |
| `--file` | `-f` | Updated file path | Yes (one of) |
| `--content` | | Inline content | Yes (one of) |
| `--category` | `-c` | New category | No |
| `--sort` | | New sort value | No |
| `--lang` | `-l` | Language code | No |
::: note
Single-field updates only modify the specified field, other fields remain unchanged.
:::
### geo doc delete
Delete document (move to trash, auto-cleared after 30 days).
```bash
geo doc delete --slug my-doc
geo doc delete --slug my-doc --yes # Skip confirmation
```
| Parameter | Short | Description | Required |
|-----------|-------|-------------|----------|
| `--slug` | `-s` | Document slug | Yes |
| `--lang` | `-l` | Language code | No |
| `--yes` | `-y` | Skip confirmation prompt | No |
### geo doc trash / recover
View and recover documents from trash.
```bash
geo doc trash # List trash
geo doc trash --clear # Clear trash
geo doc recover --file my-doc-zh-123456.md # Recover document
```
### geo doc reorder
Batch adjust document sorting.
```bash
geo doc reorder --orders "quick-start:0,faq:1,architecture:2"
```
| Parameter | Short | Description | Required |
|-----------|-------|-------------|----------|
| `--orders` | `-o` | Format: `slug1:sort-value,slug2:sort-value` | Yes |
---
## Category Commands
### geo category list
List all categories.
```bash
geo category list
geo category list --json
```
### geo category create
Create category.
```bash
geo category create --name "CAN 电机" --name-en "CAN MOTION" --slug can-motion \
--description "CAN 总线闭环步进电机" --description-en "CAN bus closed-loop stepper motors"
```
| Parameter | Description | Required |
|-----------|-------------|----------|
| `--name` | Category name (default language) | Yes |
| `--name-en` | English name | No |
| `--name-jp` | Japanese name | No |
| `--slug` | Category slug | Yes |
| `--description` | Category description | No |
| `--description-en` | English description | No |
| `--description-jp` | Japanese description | No |
::: note
If slug already exists, it updates the existing category (upsert semantics).
:::
### geo category update
Update category information.
```bash
geo category update --slug can-motion --name "New Name" --name-en "New Name"
```
### geo category reorder
Batch adjust category sorting.
```bash
geo category reorder --orders "products:0,technical:1,support:2"
```
### geo category delete
Delete category.
```bash
geo category delete --slug old-category
```
---
## Tag Commands
### geo tag list / create / delete
```bash
geo tag list
geo tag list --json
geo tag create --name "CAN Bus" --slug can-bus
geo tag delete --slug can-bus
```
| Parameter | Short | Description | Required |
|-----------|-------|-------------|----------|
| `--slug` | `-s` | Tag slug | Yes |
| `--name` | `-n` | Tag display name | Yes (create) |
---
## Search Commands
### geo search
Search documents.
```bash
geo search "CAN bus"
geo search "motor" --category can-motion
geo search "Arduino" --lang en --json
```
| Parameter | Short | Description | Required |
|-----------|-------|-------------|----------|
| `--category` | `-c` | Filter by category | No |
| `--lang` | `-l` | Language (default zh) | No |
| `--limit` | | Maximum results (default 20) | No |
---
## Configuration Commands
### geo config get
Get site configuration.
```bash
geo config get
geo config get --json
```
### geo config update
Update site configuration.
```bash
geo config update --site-name "My Knowledge Base"
geo config update --hero-title-zh "Welcome" --hero-title-en "Welcome"
geo config update --hero-subtitle-zh "Product docs" --hero-subtitle-en "Product docs"
geo config update --featured-slugs "quick-start,faq,overview"
geo config update --logo-url "/media/logo.png" --favicon-url "/media/favicon.ico"
geo config update --custom-head '<meta name="theme-color" content="#2563EB">'
```
| Parameter | Description | Required |
|-----------|-------------|----------|
| `--site-name` | Site name | No |
| `--site-desc` | Site description (SEO) | No |
| `--default-lang` | Default language (zh, en, jp) | No |
| `--hero-title` | Hero section title | No |
| `--hero-title-zh` | Hero title (Chinese) | No |
| `--hero-title-en` | Hero title (English) | No |
| `--hero-title-jp` | Hero title (Japanese) | No |
| `--hero-subtitle` | Hero subtitle | No |
| `--hero-subtitle-zh` | Hero subtitle (Chinese) | No |
| `--hero-subtitle-en` | Hero subtitle (English) | No |
| `--hero-subtitle-jp` | Hero subtitle (Japanese) | No |
| `--featured-slugs` | Comma-separated featured document slugs | No |
| `--logo-url` | Logo image path | No |
| `--favicon-url` | Favicon path | No |
| `--custom-head` | Custom HTML (injected into `<head>`) | No |
---
## User Commands
### geo user list / create / update / delete
```bash
geo user list
geo user list --json
geo user create --username editor1 --password MyPass123 --role editor
geo user update --id user-xxx --role admin
geo user reset-password --id user-xxx
geo user delete --id user-xxx
```
| Parameter | Description | Required |
|-----------|-------------|----------|
| `--id` | User ID (required for update/delete/reset-password) | Yes |
| `--username` | Username (required for create) | Yes |
| `--password` | Password (required for create) | Yes |
| `--role` | Role: admin / editor / viewer (default editor) | No |
### geo user token
Manage API Tokens.
```bash
geo user token list # List all Tokens
geo user token list --json # JSON format output
geo user token delete --id token-id # Revoke Token
```
::: note
API Token creation can only be done in the admin panel under "Settings -> API Token".
:::
---
## Draft Commands
```bash
geo draft list # List all drafts
geo draft list --json # JSON format output
geo draft get --slug my-draft # View draft content
geo draft publish --slug my-draft # Publish draft
geo draft delete --slug my-draft # Delete draft
```
---
## Statistics Commands
```bash
geo stats # View dashboard statistics
geo stats --json # JSON format output
```
---
## Feedback Commands
```bash
geo feedback list # List all feedback
geo feedback list --json # JSON format output
geo feedback delete --id "feedback-id" # Delete feedback
geo feedback promote --id "feedback-id" # Promote feedback to document content or FAQ
```
---
## Guestbook Commands
```bash
geo guestbook list # List all entries
geo guestbook list --json # JSON format output
geo guestbook toggle --enabled true # Enable guestbook
geo guestbook toggle --enabled false # Disable guestbook
geo guestbook update --id "entry-id" --status approved # Approve
geo guestbook update --id "entry-id" --status rejected # Reject
geo guestbook delete --id "entry-id" # Delete entry
```
---
## Media Commands
```bash
geo media upload --file ./diagram.png
geo media upload --file ./manual.pdf --directory docs
geo media upload --file ./model.step --directory models
geo media list --json
geo media delete --file old-image.jpg
```
| Parameter | Short | Description | Required |
|-----------|-------|-------------|----------|
| `--file` | `-f` | Local file path (upload) or filename (delete) | Yes |
| `--directory` | `-d` | Subdirectory under public/media | No |
### Supported File Types
| Type | Formats |
|------|---------|
| Images | JPG, PNG, GIF, WebP |
| Videos | MP4, WebM |
| Audio | MP3, WAV, OGG |
| Documents | PDF, DOC, DOCX, TXT, MD |
| 3D Models | STEP, STP, IGS |
---
## GEO Commands
### geo geo status
View GEO optimization status.
```bash
geo geo status
```
### geo geo rebuild
Rebuild GEO files (llms.txt, sitemap.xml).
```bash
geo geo rebuild
```
### geo geo report
View GEO analytics report.
```bash
geo geo report
geo geo report --json
```
### geo geo llms / sitemap / manifest
```bash
geo geo llms # View llms.txt content
geo geo sitemap # View sitemap.xml content
geo geo manifest # View site manifest
```
---
## Global Options
All commands support the `--json` flag for machine-readable JSON format output, suitable for Agent parsing.
---
## Related Documents
- [CLI Installation and Login](/docs/cli-install) — Installation and login guide
- [CLI Quick Reference](/docs/cli-quick-reference) — Agent quick reference manual
- [GEO Wiki Pro User Manual](/docs/geo-wiki-pro-user-manual) — Complete user manual
- [REST API Documentation](/docs/rest-api) — API endpoint reference