149 lines
4.9 KiB
Markdown
149 lines
4.9 KiB
Markdown
# CLI Examples
|
|
|
|
This page shows various ways to use `kbot` from the command line.
|
|
|
|
## Basic Modifications
|
|
|
|
Modify project files based on a prompt:
|
|
|
|
```bash
|
|
# Request a change in the current directory context
|
|
kbot "Add comprehensive error handling to all API route handlers"
|
|
|
|
# Use stdin for the prompt
|
|
echo "Refactor the database connection logic into a reusable module" | kbot
|
|
|
|
# Use a file containing the prompt
|
|
kbot --prompt ./prompts/refactor_request.md
|
|
|
|
# Specify target files using glob patterns
|
|
kbot --include "src/controllers/**/*.ts" "Ensure all controller methods return consistent JSON responses"
|
|
|
|
# Target specific files
|
|
kbot --include "src/utils/auth.ts,src/middleware/auth.js" "Update authentication logic to support JWT refresh tokens"
|
|
```
|
|
|
|
## Working with Different Input Sources
|
|
|
|
`kbot` can process various types of input specified via the `--include` parameter:
|
|
|
|
```bash
|
|
# Include local files and directories
|
|
kbot --include "./docs/api.md,./src/server.ts" "Update the API documentation based on the server code"
|
|
|
|
# Include content from a web URL
|
|
kbot --include "https://raw.githubusercontent.com/user/repo/main/README.md" "Summarize this project's README"
|
|
|
|
# Combine different sources
|
|
kbot --include "./config.yaml,https://example.com/api/spec.json" "Generate documentation based on the config and the API spec"
|
|
```
|
|
|
|
## Advanced Data Transformation & Iteration
|
|
|
|
These examples demonstrate more complex scenarios involving data processing, structured output, and iteration.
|
|
|
|
### Transforming Data with the Iterator Factory
|
|
|
|
The `iterator-factory-example.ts` demonstrates advanced usage including transforming specific fields within complex JSON objects, handling arrays, caching results, and generating structured output using the `--format` option.
|
|
|
|
To run this example:
|
|
|
|
```bash
|
|
# Ensure dependencies are installed, then run:
|
|
npm run examples:iterator-factory
|
|
|
|
# Run without caching:
|
|
npm run examples:iterator-factory -- --no-cache
|
|
```
|
|
|
|
This example uses the `createIterator` function for fine-grained control. Explore the code in `src/examples/core/iterator-factory-example.ts` for details.
|
|
|
|
### Structured Output with `--format`
|
|
|
|
Force the AI to return data in a specific JSON structure. You can provide the schema as a JSON string, a file path, or a Zod schema string.
|
|
|
|
```bash
|
|
# Using a JSON schema file
|
|
kbot --include ./product_review.txt \
|
|
--format file:./schemas/review_analysis_schema.json \
|
|
"Analyze this review and extract sentiment, pros, and cons according to the schema"
|
|
|
|
# Using an inline JSON schema string
|
|
kbot --include ./data.json \
|
|
--format '{"type":"object","properties":{"summary":{"type":"string"},"keywords":{"type":"array","items":{"type":"string"}}},"required":["summary","keywords"]}' \
|
|
"Summarize this data and extract keywords"
|
|
```
|
|
|
|
### Iterating with `--each`
|
|
|
|
Process multiple items (files, models, strings) in sequence.
|
|
|
|
```bash
|
|
# Iterate over specific files and output to separate files
|
|
kbot --each "./src/moduleA.ts,./src/moduleB.ts" \
|
|
--dst "./docs/${ITEM}.md" \
|
|
"Generate documentation for the module defined in ${ITEM}"
|
|
|
|
# Test a prompt against multiple models
|
|
kbot --each "openai/gpt-4o,anthropic/claude-3-sonnet" \
|
|
--include ./my_code.py \
|
|
--dst "${ITEM}_review.txt" \
|
|
"Review this Python code for potential bugs and suggest improvements"
|
|
|
|
# Iterate over files matching a glob pattern
|
|
kbot --each "./tests/**/*.test.js" \
|
|
--dst "./coverage/${ITEM}.txt" \
|
|
"Analyze the test coverage for ${ITEM}"
|
|
```
|
|
|
|
## Configuration and Control
|
|
|
|
### Using Profiles and Environments
|
|
|
|
Load variables from configuration files for different environments.
|
|
|
|
```bash
|
|
# Load variables from a profile and specify an environment
|
|
kbot --profile ./config/profiles.json --env staging "Deploy the staging configuration using variables from the profile"
|
|
```
|
|
|
|
### Custom Output Paths
|
|
|
|
Control where results are saved.
|
|
|
|
```bash
|
|
# Save modifications to a different directory (tool mode)
|
|
kbot --output ./refactored_code "Refactor all functions to use async/await"
|
|
|
|
# Save completion result to a specific file (completion mode)
|
|
kbot --mode completion --dst ./summary.md "Summarize the included documents"
|
|
```
|
|
|
|
### Model and Router Selection
|
|
|
|
Choose the AI provider and specific model.
|
|
|
|
```bash
|
|
# Use a specific OpenAI model
|
|
kbot --router openai --model gpt-4o "Translate the included text to French"
|
|
|
|
# Use a model via OpenRouter (default router)
|
|
kbot --model anthropic/claude-3.5-sonnet "Write a poem about the included text"
|
|
```
|
|
|
|
### Tool Control
|
|
|
|
Enable or disable specific tools or categories.
|
|
|
|
```bash
|
|
# Disable the 'git' category tools
|
|
kbot --disable git "Update code documentation without committing changes"
|
|
|
|
# Disable specific tools by name
|
|
kbot --disableTools "npm_install,file_save" "Analyze dependencies but do not install or save files"
|
|
```
|
|
|
|
## More Examples
|
|
|
|
For more in-depth examples demonstrating various features like custom tools, different modes, and advanced configurations, please explore the code within the `src/examples/` directory of this package.
|