CLI Prompt Management Tool - Guides and Documentation
| English | 日本語 |
Explains Climpt’s directory structure and configuration file details.
your-project/
├── .agent/
│ └── climpt/
│ ├── config/ # Config files
│ │ ├── registry_config.json # Registry configuration
│ │ ├── default-app.yml # Default configuration
│ │ ├── default-user.yml # User configuration (optional)
│ │ └── {domain}-app.yml # Per-domain configuration
│ ├── prompts/ # Prompt templates
│ │ └── {c1}/{c2}/{c3}/f_{edition}.md
│ ├── frontmatter-to-schema/ # Generated JSON Schema (by generate-registry)
│ └── registry.json # Command registry
├── .deno/bin/ # CLI executables
│ ├── climpt, climpt-git, climpt-meta, climpt-code, climpt-test
└── .agent/ # Agents (optional)
├── iterator/agent.json
├── reviewer/agent.json
└── facilitator/agent.json
| Directory | Role | Required |
|---|---|---|
.agent/climpt/config/ |
Config file storage | Yes |
.agent/climpt/prompts/ |
Prompt templates | Yes |
.agent/climpt/frontmatter-to-schema/ |
Generated JSON Schema | No (auto-generated) |
.deno/bin/ |
CLI executables | Not needed for MCP only |
prompts/{c1}/{c2}/{c3}/f_{edition}_{adaptation}.md
│ │ │ │ │
│ │ │ │ └─ Processing mode (optional)
│ │ │ └─ Edition (default if omitted)
│ │ └─ Target (object)
│ └─ Action (verb)
└─ Domain (area)
Defines prompt and schema placement directories for each domain.
.agent/climpt/config/{domain}-app.yml
Examples: git-app.yml (for climpt-git), code-app.yml (for climpt-code),
default-app.yml (when --config not specified).
# .agent/climpt/config/git-app.yml
# Working directory (base for prompt search)
working_dir: ".agent/climpt"
# Prompt file location
app_prompt:
base_dir: "prompts/git" # Relative path from working_dir
# Schema file location (optional)
app_schema:
base_dir: "schema/git"
| Item | Description | Required |
|---|---|---|
working_dir |
Base directory for prompt search | Yes |
app_prompt.base_dir |
Base directory for prompt files | Yes |
app_schema.base_dir |
Base directory for schema files | No |
How the command resolves to prompt file path:
Command: climpt-git decide-branch working-branch
1. working_dir: ".agent/climpt"
2. app_prompt.base_dir: "prompts/git"
3. c2: "decide-branch"
4. c3: "working-branch"
5. filename: "f_default.md"
Result: .agent/climpt/prompts/git/decide-branch/working-branch/f_default.md
Customize option default values and behavior.
.agent/climpt/config/{domain}-user.yml
# .agent/climpt/config/git-user.yml
# Output destination prefix setting
options:
destination:
prefix: "output/git" # Prepended to paths specified with -o
# Parameter validation patterns (optional)
params:
two:
directiveType:
pattern: "^(decide-branch|group-commit|merge-up)$"
layerType:
pattern: "^(working-branch|unstaged-changes|base-branch)$"
| Item | Description |
|---|---|
options.destination.prefix |
Prefix prepended to output destination paths |
params.two.directiveType.pattern |
Regex validation for c2 (action) |
params.two.layerType.pattern |
Regex validation for c3 (target) |
# When prefix: "output/git" is set in user.yml
climpt-git create issue -o=tasks/task1.md
# Actual output destination: output/git/tasks/task1.md
# Without prefix configured
# Actual output destination: tasks/task1.md
Manage registries for multiple agents.
Priority order (searched top to bottom):
.agent/climpt/config/registry_config.json (project)~/.agent/climpt/config/registry_config.json (home){
"registries": {
"climpt": ".agent/climpt/registry.json",
"inspector": ".agent/inspector/registry.json",
"auditor": ".agent/auditor/registry.json"
}
}
# Search commands from different agents via MCP
search({ query: "commit", agent: "climpt" })
search({ query: "analyze", agent: "inspector" })
1. Command-line options (highest priority)
↓
2. user.yml settings
↓
3. app.yml settings
↓
4. Default values
# Command-line: -o=./custom/output
# user.yml: destination.prefix = "output/git"
# app.yml: (none)
# Result: ./custom/output (command-line takes priority)
1. .agent/climpt/config/{domain}-app.yml
2. .agent/climpt/config/default-app.yml
3. Error (config file not found)
# app.yml (required)
cat > .agent/climpt/config/myapp-app.yml << 'EOF'
working_dir: ".agent/climpt"
app_prompt:
base_dir: "prompts/myapp"
app_schema:
base_dir: "schema/myapp"
EOF
# user.yml (optional)
cat > .agent/climpt/config/myapp-user.yml << 'EOF'
options:
destination:
prefix: "output/myapp"
params:
two:
directiveType:
pattern: "^(create|update|delete)$"
layerType:
pattern: "^(item|list|detail)$"
EOF
mkdir -p .agent/climpt/prompts/myapp/create/item
cat > .deno/bin/climpt-myapp << 'EOF'
#!/bin/sh
case "$1" in
-h|--help|-v|--version)
exec deno run --allow-read --allow-write --allow-env --allow-run --allow-net --no-config 'jsr:@aidevtool/climpt' "$@"
;;
*)
exec deno run --allow-read --allow-write --allow-env --allow-run --allow-net --no-config 'jsr:@aidevtool/climpt' --config=myapp "$@"
;;
esac
EOF
chmod +x .deno/bin/climpt-myapp