Unified CLI for managing AI coding tools: Codex, Claude Code, and Gemini CLI.
Docs: English | Chinese (Simplified) Documentation site: https://thornboo.github.io/prismctl/
- Template Management - Output styles, git workflows, agents, and commands
- Skills Management - Install, create, and manage Claude Code skills
- Provider Presets - Quick setup for OpenRouter, DeepSeek, Ollama, and more
- Safe by Default - Dry-run mode, home sandbox, managed blocks
- Multi-language - zh-CN and English templates
Prismctl CLI supports zh-CN and English for interactive prompts (work in progress):
# English
PRISMCTL_LANG=en prismctl
# Chinese
PRISMCTL_LANG=zh-CN prismctlYou can also set language via a global flag (must be placed before the command):
prismctl --lang en --help
prismctl --lang zh-CN init --tool allIn the interactive wizard, you can switch language from the menu (persisted to ~/.prismctl/config.toml).
Config file format:
[cli]
lang = "en"cargo install prismctlThis installs the latest release binary to ~/.local/bin:
curl -fsSL "https://raw.githubusercontent.com/thornboo/prismctl/HEAD/install.sh" | shCustom install dir:
PRISMCTL_INSTALL_DIR="$HOME/bin" curl -fsSL "https://raw.githubusercontent.com/thornboo/prismctl/HEAD/install.sh" | shgit clone https://github.com/thornboo/prismctl.git
cd prismctl
cargo install --path crates/prismctl-cli# Development
cargo run -p prismctl -- --help
# Release binary
cargo build -p prismctl --release
./target/release/prismctl --help# Interactive wizard (TTY only)
prismctl
# Show resolved paths (no writes)
prismctl doctor
# Initialize all tools (dry-run by default)
prismctl init --tool all
# Quick init (hybrid, supports flags)
prismctl i --tool all
# Apply changes to a sandbox
prismctl init --tool all --home "/tmp/prismctl-home" --apply
# Mirror prefix: `prismctl config <CMD> ...` ≡ `prismctl <CMD> ...`
prismctl config doctor
# Initialize project-level configuration
prismctl project init --path "/path/to/your/project" --applyPrismctl uses Nerd Fonts (via the devicons crate) to render file/folder icons in TTY change previews.
Disable icons:
PRISMCTL_NO_ICONS=1 prismctl init --tool all# Main entry point (TTY only)
prismctl
prismctl config# Initialize templates for all tools
prismctl init --tool all --apply
# Update templates (preserves user content)
prismctl update --tool all --apply
# Quick update
prismctl u --tool all --apply
# Initialize specific tool
prismctl init --tool codex --apply
prismctl init --tool claude --apply
prismctl init --tool gemini --apply# List available skills
prismctl skill list
# Install a built-in skill
prismctl skill install --name explain-code --apply
# Create a new skill template
prismctl skill create --name my-skill --apply
# Remove a skill
prismctl skill remove --name my-skill --apply --yes# Use provider preset (OpenRouter, DeepSeek, Ollama, etc.)
prismctl codex provider set --provider openrouter --api-key "sk-xxx" --apply
# Custom provider
prismctl codex provider set --base-url "https://api.example.com/v1" --model "gpt-4" --api-key "sk-xxx" --apply
# Select agent style
prismctl codex agent use --name prismctl-engineer-professional --apply --yes# Configure API
prismctl claude env set --auth-token "sk-xxx" --base-url "https://api.example.com" --apply
# Set output style
prismctl claude output-style use --name prismctl-engineer-professional --apply
# MCP (delegates to claude CLI)
prismctl claude mcp add --name context7 --scope user --apply --yes# Configure API
prismctl gemini env set --api-key "xxx" --apply
# Set model.name (writes settings.json)
prismctl gemini settings set --model "gemini-2.5-pro" --apply
# MCP (delegates to gemini CLI)
prismctl gemini mcp add --name context7 --scope user --apply --yesPrismctl is designed with safety in mind:
| Feature | Description |
|---|---|
| Dry-run Default | No files written unless --apply is passed |
| Home Sandbox | --home or PRISMCTL_HOME redirects all I/O |
| Managed Blocks | Only updates content between markers, preserves user content |
| Namespaced | Templates written to prismctl/ directories |
prismctl-engineer-professional- Professional engineering styleprismctl-laowang-engineer- Laowang styleprismctl-leibus-engineer- Leibus styleprismctl-nekomata-engineer- Nekomata styleprismctl-ojousama-engineer- Ojousama styleprismctl-rem-engineer- Rem style
git-commit- Conventional commit helpergit-worktree- Git worktree managementgit-rollback- Safe rollback operationsgit-cleanBranches- Clean merged branches
explain-code- Code explanation with diagramscodebase-visualizer- Interactive codebase visualizationpr-summary- Pull request summary generator
| Provider | Base URL | Default Model |
|---|---|---|
| OpenRouter | https://openrouter.ai/api/v1 |
google/gemini-2.5-pro-preview |
| DeepSeek | https://api.deepseek.com/v1 |
deepseek-chat |
| Ollama | http://localhost:11434/v1 |
qwen2.5-coder:latest |
| Volcengine | https://ark.cn-beijing.volces.com/api/v3 |
deepseek-v3-250324 |
| SiliconFlow | https://api.siliconflow.cn/v1 |
moonshotai/Kimi-K2-Instruct |
Prismctl/
├── crates/
│ ├── prismctl-cli/ # CLI entry point
│ ├── prismctl-core/ # Core business logic
│ │ └── assets/ # Built-in templates
│ └── prismctl-i18n/ # i18n support (ftl + keys)
See CONTRIBUTING.md for development guidelines.
# Run tests
cargo test --all
# Run clippy
cargo clippy -- -D warnings
# Format code
cargo fmt --allMIT License - see LICENSE for details.
Template sources traced from: