{"id":22917787,"url":"https://github.com/spachava753/cpe","last_synced_at":"2026-04-19T05:03:21.701Z","repository":{"id":250630328,"uuid":"834992583","full_name":"spachava753/cpe","owner":"spachava753","description":"A LLM powered chat based programming editor","archived":false,"fork":false,"pushed_at":"2026-04-17T02:14:48.000Z","size":3888,"stargazers_count":9,"open_issues_count":25,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-17T04:26:52.847Z","etag":null,"topics":["ai","cli","genai","generative-ai","go","golang","tree-sitter"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spachava753.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-07-28T23:31:30.000Z","updated_at":"2026-04-17T02:14:52.000Z","dependencies_parsed_at":"2024-07-29T01:30:09.438Z","dependency_job_id":"7df83d16-3dbd-4161-84f4-eb8efc1080e5","html_url":"https://github.com/spachava753/cpe","commit_stats":null,"previous_names":["spachava753/cpe"],"tags_count":115,"template":false,"template_full_name":null,"purl":"pkg:github/spachava753/cpe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spachava753%2Fcpe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spachava753%2Fcpe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spachava753%2Fcpe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spachava753%2Fcpe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spachava753","download_url":"https://codeload.github.com/spachava753/cpe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spachava753%2Fcpe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31995167,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","cli","genai","generative-ai","go","golang","tree-sitter"],"created_at":"2024-12-14T06:20:22.208Z","updated_at":"2026-04-19T05:03:21.688Z","avatar_url":"https://github.com/spachava753.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CPE – Chat-based Programming Editor\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eA powerful CLI that brings AI directly to your terminal for code analysis, editing, and automation.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e •\n  \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e •\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#configuration\"\u003eConfiguration\u003c/a\u003e •\n  \u003ca href=\"#troubleshooting\"\u003eTroubleshooting\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nCPE connects your local development workflow to multiple AI providers through a single, unified interface. Write natural language prompts, and CPE handles the rest—whether you're analyzing code, making edits, or automating complex tasks.\n\n## ✨ Why CPE?\n\n- **One tool, many models**: Switch between Claude, GPT, Gemini, and more with a simple flag\n- **Tool integration**: Connect to MCP servers for file editing, shell commands, web search, and more\n- **Conversation memory**: Resume previous conversations or branch off in new directions\n- **Code Mode**: Let the AI write and execute Go code to accomplish complex multi-step tasks\n- **Privacy-first**: Your data stays local; incognito mode for sensitive work\n\n## 🚀 Installation\n\n### Using Go (recommended)\n\n```bash\ngo install github.com/spachava753/cpe@latest\n```\n\n### From source\n\n```bash\ngit clone https://github.com/spachava753/cpe.git\ncd cpe\ngo build -o cpe .\n```\n\n### Shell Completion\n\nCPE supports shell autocompletion for faster command entry:\n\n```bash\n# Bash (add to ~/.bashrc)\nsource \u003c(cpe completion bash)\n\n# Zsh (add to ~/.zshrc)\nsource \u003c(cpe completion zsh)\n\n# Fish\ncpe completion fish | source\n\n# PowerShell\ncpe completion powershell | Out-String | Invoke-Expression\n```\n\n## ⚡ Quick Start\n\n\u003e **Note**: CPE requires a configuration file to define which models and tools to use. There's no zero-config mode—you'll need to set up at least one model before getting started.\n\n### 1. Create a configuration file\n\nCreate a `cpe.yaml` in your project directory or in your user config directory:\n- **macOS**: `~/Library/Application Support/cpe/cpe.yaml`\n- **Linux**: `~/.config/cpe/cpe.yaml`\n- **Windows**: `%AppData%\\cpe\\cpe.yaml`\n\n```yaml\nversion: \"1.0\"\n\nmodels:\n  - ref: sonnet\n    display_name: \"Claude Sonnet\"\n    id: claude-sonnet-4-5-20250929\n    type: anthropic\n    api_key_env: ANTHROPIC_API_KEY  # You choose the env var name\n    context_window: 200000\n    max_output: 64000\n\ndefaults:\n  model: sonnet\n  timeout: 5m\n```\n\n\u003e **Tip**: You can quickly add models from the [models.dev](https://models.dev) registry:\n\u003e ```bash\n\u003e # Add a model from the registry\n\u003e cpe config add anthropic/claude-sonnet-4-20250514 --ref sonnet\n\u003e ```\n\n### 2. Set your API key\n\n```bash\n# Use whatever env var name you specified in api_key_env\nexport ANTHROPIC_API_KEY=\"your-api-key\"\n```\n\n### 3. Start chatting\n\n```bash\n# Ask a question\ncpe \"Explain what this project does\"\n\n# Analyze specific files\ncpe -i main.go -i README.md \"What are the main entry points?\"\n\n# Use a different model\ncpe -m gpt4 \"Help me refactor this function\"\n```\n\n## 🎯 Features\n\n### Multi-Model Support\n\nCPE works with all major AI providers:\n\n| Provider | Type | Example Models |\n|----------|------|----------------|\n| Anthropic | `anthropic` | Claude Opus, Sonnet, Haiku |\n| OpenAI | `openai`, `responses` | GPT-4o, GPT-5, o1 |\n| Google | `gemini` | Gemini Pro, Flash |\n| Groq | `groq` | Llama, Mixtral (fast inference) |\n| Z.AI (ZhipuAI) | `zai` | GLM-4 |\n| Cerebras | `cerebras` | Llama (fast inference) |\n| OpenRouter | `openrouter` or `openai` (with base_url) | Any OpenRouter model |\n\nSwitch models on the fly:\n```bash\ncpe -m sonnet \"Write a test for this function\"\ncpe -m flash \"Quick question about Go syntax\"\n```\n\n### Conversation Persistence\n\nCPE remembers your conversations, stored locally in `.cpeconvo`:\n\n```bash\n# Continue your last conversation\ncpe \"Now add error handling to that code\"\n\n# Start fresh\ncpe -n \"Let's work on a new feature\"\n\n# Continue from a specific point\ncpe -c abc123 \"Actually, let's try a different approach\"\n\n# View conversation history (aliases: convo, conv)\ncpe conversation list       # alias: ls\n\n# Print a specific conversation (aliases: show, view)\ncpe conversation print abc123\n\n# Delete a conversation (aliases: rm, remove)\ncpe conversation delete abc123\n\n# Delete with cascade (removes children too)\ncpe conversation delete abc123 --cascade\n```\n\n### Input Files \u0026 URLs\n\nFeed context directly to CPE:\n\n```bash\n# Include files\ncpe -i src/main.go -i src/utils.go \"Find any bugs\"\n\n# Include URLs\ncpe -i https://example.com/docs.md \"Summarize this documentation\"\n\n# Mix files and stdin\necho \"Additional context\" | cpe -i config.yaml \"Help me configure this\"\n```\n\n### MCP Tool Integration\n\nConnect external tools via the [Model Context Protocol](https://modelcontextprotocol.io/). CPE supports three transport types:\n\n| Type | Description | Use Case |\n|------|-------------|----------|\n| `stdio` | Local process via stdin/stdout | Local tools, CLIs |\n| `http` | HTTP/HTTPS endpoint | Remote APIs, cloud services |\n| `sse` | Server-Sent Events | Streaming, real-time tools |\n\n```yaml\n# cpe.yaml\nmcpServers:\n  # Local tool via stdio\n  editor:\n    command: \"editor-mcp\"\n    type: stdio\n    timeout: 60\n    enabledTools:\n      - text_edit\n      - shell\n\n  # Remote tool via HTTP\n  search:\n    url: \"https://search.example.com/mcp\"\n    type: http\n    headers:\n      Authorization: \"Bearer ${API_KEY}\"\n\n  # SSE-based server\n  streaming:\n    url: \"https://streaming.example.com/sse\"\n    type: sse\n    headers:\n      X-API-Key: \"${MCP_API_KEY}\"\n```\n\n**Tool Filtering**: Control which tools are exposed to the AI:\n- `enabledTools`: Whitelist—only these tools are available\n- `disabledTools`: Blacklist—all tools except these are available\n\nNow the AI can edit files, run commands, and search the web!\n\n#### Debugging MCP Integrations\n\nCPE provides commands to help debug MCP server connections:\n\n```bash\n# List all configured MCP servers (alias: ls-servers)\ncpe mcp list-servers\n\n# List tools available from a specific server (alias: ls-tools)\ncpe mcp list-tools editor\n\n# Show all tools including filtered ones\ncpe mcp list-tools editor --show-all\n\n# Show only filtered-out tools\ncpe mcp list-tools editor --show-filtered\n\n# Get detailed info about a server\ncpe mcp info editor\n\n# Call a tool directly for testing\ncpe mcp call-tool --server editor --tool text_edit --args '{\"path\": \"test.txt\", \"text\": \"hello\"}'\n\n# View the execute_go_code tool description (for code mode)\ncpe mcp code-desc\n```\n\n### Code Mode\n\nCode Mode lets the AI write and execute Go code to accomplish complex tasks in a single step:\n\n```yaml\ndefaults:\n  codeMode:\n    enabled: true\n    localModulePaths:\n      - ../my-go-helpers\n      - /Users/me/dev/shared-go-utils\n```\n\nWith Code Mode, the AI can:\n- Chain multiple tool calls together\n- Use loops and conditionals\n- Process data in parallel\n- Access Go's standard library\n\nWhen `localModulePaths` is configured, generated code runs inside an ephemeral Go workspace. This lets `go mod tidy`, `go build`, and import auto-correction resolve local modules without per-run manual setup.\n\nExample: \"Find all TODO comments, group them by file, and create a summary report\" becomes a single Go program that the AI writes and CPE executes.\n\n### Account Authentication\n\nUse your Claude Pro/Max or ChatGPT subscription directly:\n\n```bash\n# Authenticate with Anthropic or OpenAI\ncpe account login anthropic\ncpe account login openai\n\n# Show OpenAI subscription usage\ncpe account usage openai\n\n# Watch usage live\ncpe account usage openai --watch\n\n# Get the raw JSON response for scripts\ncpe account usage openai --raw\n\n# Logout\ncpe account logout anthropic\ncpe account logout openai\n```\n\n\n\n### Request Patching\n\nFor advanced use cases, you can patch API requests with custom headers or JSON modifications. This is useful for:\n- OpenRouter's required `HTTP-Referer` header\n- Custom authentication schemes\n- Adding provider-specific metadata\n\n```yaml\nmodels:\n  - ref: qwen\n    id: qwen/qwen3-max\n    type: openai\n    base_url: https://openrouter.ai/api/v1/\n    api_key_env: OPENROUTER_API_KEY\n    patchRequest:\n      includeHeaders:\n        HTTP-Referer: https://my-app.example.com\n        X-Title: My AI App\n      # Optional: JSON Patch operations\n      # jsonPatch:\n      #   - op: add\n      #     path: /custom_field\n      #     value: custom_value\n```\n\n## ⚙️ Configuration\n\n### Configuration File Locations\n\nCPE searches for configuration in this order:\n1. `--config` flag (explicit path)\n2. `./cpe.yaml` (current directory)\n3. User config directory:\n   - **macOS**: `~/Library/Application Support/cpe/cpe.yaml`\n   - **Linux**: `~/.config/cpe/cpe.yaml`\n   - **Windows**: `%AppData%\\cpe\\cpe.yaml`\n\n### Full Configuration Example\n\n```yaml\n# yaml-language-server: $schema=https://raw.githubusercontent.com/spachava753/cpe/refs/heads/main/schema/cpe-config-schema.json\nversion: \"1.0\"\n\n# MCP servers for tool access\nmcpServers:\n  editor:\n    command: \"editor-mcp\"\n    type: stdio\n    timeout: 60\n    enabledTools:\n      - text_edit\n      - shell\n\n# Define your models\nmodels:\n  - ref: sonnet\n    display_name: \"Claude Sonnet\"\n    id: claude-sonnet-4-5-20250929\n    type: anthropic\n    api_key_env: ANTHROPIC_API_KEY\n    context_window: 200000\n    max_output: 64000\n    input_cost_per_million: 3\n    output_cost_per_million: 15\n\n  - ref: flash\n    display_name: \"Gemini Flash\"\n    id: gemini-flash-latest\n    type: gemini\n    api_key_env: GEMINI_API_KEY\n    context_window: 1048576\n    max_output: 65536\n\n  - ref: gpt4\n    display_name: \"GPT-4o\"\n    id: gpt-4o\n    type: openai\n    api_key_env: OPENAI_API_KEY\n\n  - ref: glm\n    display_name: \"Z.AI GLM-4\"\n    id: glm-4\n    type: zai\n    api_key_env: Z_API_KEY\n    context_window: 128000\n    max_output: 4096\n\n# Global defaults\ndefaults:\n  model: sonnet\n  systemPromptPath: \"./prompts/agent.md\"\n  timeout: 5m\n  codeMode:\n    enabled: true\n    maxTimeout: 3600\n    localModulePaths:\n      - ../my-go-helpers\n  # Generation parameters control LLM behavior\n  generationParams:\n    temperature: 0.7      # Controls randomness (0.0 = deterministic, 1.0 = creative)\n    # topP: 0.9           # Nucleus sampling threshold\n    # topK: 40            # Top-k sampling parameter\n    # frequencyPenalty: 0 # Penalize repeated tokens (-2.0 to 2.0)\n    # presencePenalty: 0  # Penalize tokens already in context (-2.0 to 2.0)\n```\n\n### Environment Variables\n\n| Variable | Description |\n|----------|-------------|\n| `CPE_MODEL` | Default model to use (overridden by `-m` flag) |\n| `CPE_VERBOSE_SUBAGENT` | Show detailed subagent output |\n\n\u003e **Note**: API keys are configured per-model via the `api_key_env` field. You choose the environment variable name—there are no hardcoded defaults. For example, you could use `MY_ANTHROPIC_KEY`, `OPENAI_API_KEY`, or any name you prefer.\n\n### Model Management\n\n```bash\n# List configured models (aliases: models, ls)\ncpe model list\n\n# Show model details\ncpe model info sonnet\n\n# View the rendered system prompt for a model (uses -m flag)\ncpe model system-prompt -m sonnet\n\n# Add a model from models.dev registry\ncpe config add anthropic/claude-sonnet-4-20250514\n\n# Add with custom ref\ncpe config add anthropic/claude-sonnet-4-20250514 --ref claude\n\n# Remove a model\ncpe config remove claude\n```\n\n## 📚 Examples\n\n### Code Review\n\n```bash\ncpe -i main.go -i utils.go \"Review this code for potential bugs and suggest improvements\"\n```\n\n### Refactoring\n\n```bash\ncpe -i legacy_module.py \"Refactor this to use modern Python patterns. Update the file directly.\"\n```\n\n### Documentation\n\n```bash\ncpe -i api.go -i handlers.go \"Generate comprehensive documentation for all public functions\"\n```\n\n### Debugging\n\n```bash\ncpe -i error.log -i src/handler.go \"Why is this error happening? Suggest a fix.\"\n```\n\n### Quick Tasks\n\n```bash\n# Generate a .gitignore\ncpe \"Create a .gitignore for a Go project\"\n\n# Explain code\ncpe -i complex_algorithm.go \"Explain what this does step by step\"\n\n# Convert formats\necho '{\"name\": \"test\"}' | cpe \"Convert this JSON to YAML\"\n```\n\n## 🧩 Skills System\n\nCPE can be extended with **skills**—reusable, composable capabilities that provide specialized knowledge and workflows.\n\n### What Are Skills?\n\nA skill is a directory containing a `SKILL.md` file with YAML frontmatter (name and description) followed by instructions, examples, or reference material. Skills are discovered and rendered into the system prompt.\n\n### Configuring Skills\n\nSkills locations are **user-defined** in your system prompt template using the `{{ skills }}` function. There are no hardcoded defaults—you specify exactly which directories to scan:\n\n```markdown\n\u003c!-- In your agent_instructions.md template --\u003e\n{{- $skills := skills \"./skills\" \"~/my-custom-skills\" \"/shared/team-skills\" -}}\n{{- if $skills }}\n\u003cskills\u003e\n{{- range $skill := $skills }}\n  \u003cskill name={{ printf \"%q\" $skill.Name }}\u003e\n    \u003cdescription\u003e{{ $skill.Description }}\u003c/description\u003e\n    \u003cpath\u003e{{ $skill.Path }}\u003c/path\u003e\n  \u003c/skill\u003e\n{{- end }}\n\u003c/skills\u003e\n{{- end }}\n```\n\nThe `skills` function:\n- Accepts any number of directory paths\n- Scans each for subdirectories containing `SKILL.md`\n- Returns a list of skill objects (`name`, `description`, `path`) so your template controls the output format (XML, JSON, CSV, etc.)\n\n### Example Skill Structure\n\n```\nskills/\n└── github-issue/\n    └── SKILL.md\n```\n\n```markdown\n---\nname: github-issue\ndescription: Create and manage GitHub issues with proper templates\n---\n\n# GitHub Issue Skill\n\nInstructions for creating well-formatted GitHub issues...\n```\n\n### Creating Your Own Skills\n\nCreate a directory with a `SKILL.md` file anywhere you like, then reference that path in your system prompt template:\n\n```markdown\n{{- $skills := skills \"./my-project-skills\" \"~/my-global-skills\" -}}\n{{/* format $skills however you want */}}\n```\n\nFor examples of well-structured skills, see the `skills/` directory in the CPE repository—these are skills used for CPE's own development but serve as good templates for creating your own.\n\n## 🔧 CLI Reference\n\n```\ncpe [flags] [prompt]\n\nCore Flags:\n  -m, --model string           Specify the model to use\n  -i, --input strings          Input files or URLs to process\n  -n, --new                    Start a new conversation\n  -c, --continue string        Continue from a specific conversation ID\n  -G, --incognito              Don't save conversation to storage\n      --config string          Path to configuration file\n      --skip-stdin             Skip reading from stdin\n  -v, --version                Print version and exit\n\nGeneration Parameters:\n  -t, --temperature float      Sampling temperature (0.0 - 1.0)\n  -x, --max-tokens int         Maximum tokens to generate\n  -b, --thinking-budget string Budget for reasoning capabilities\n      --top-p float            Nucleus sampling parameter (0.0 - 1.0)\n      --top-k uint             Top-k sampling parameter\n      --frequency-penalty float Frequency penalty (-2.0 - 2.0)\n      --presence-penalty float  Presence penalty (-2.0 - 2.0)\n      --number-of-responses uint Number of responses to generate\n      --timeout string         Request timeout (e.g., '5m', '30s')\n\nAdvanced:\n      --custom-url string      Custom base URL for the model provider API\n      --verbose-subagent       Show verbose subagent output including full tool payloads\n\nCommands:\n  account       Manage AI provider accounts (login, logout, usage)\n  config        Manage configuration (add, remove models)\n  conversation  Manage conversation history [aliases: convo, conv]\n                ├─ list    List conversations [alias: ls]\n                ├─ print   Print a conversation [aliases: show, view]\n                └─ delete  Delete conversations [aliases: rm, remove]\n  model         List and inspect models [alias: models]\n                ├─ list          List models [alias: ls]\n                ├─ info          Show model details\n                └─ system-prompt Show rendered system prompt\n  mcp           MCP tools\n                ├─ serve        Run CPE as MCP server\n                ├─ list-servers List servers [alias: ls-servers]\n                ├─ list-tools   List tools [alias: ls-tools]\n                ├─ call-tool    Call a tool\n                ├─ info         Server info\n                └─ code-desc    Show code mode description\n  completion    Generate shell autocompletion scripts (bash, zsh, fish, powershell)\n```\n\n## 🤖 Subagent Mode\n\nCPE can run as an MCP server, enabling powerful agent composition patterns:\n\n```yaml\n# subagent.yaml\nversion: \"1.0\"\n\nsubagent:\n  name: \"code_reviewer\"\n  description: \"Reviews code and provides detailed feedback\"\n\nmodels:\n  - ref: sonnet\n    id: claude-sonnet-4-5-20250929\n    type: anthropic\n    api_key_env: ANTHROPIC_API_KEY\n\ndefaults:\n  model: sonnet\n  systemPromptPath: ./reviewer_prompt.md\n```\n\nRun the subagent:\n```bash\ncpe mcp serve --config ./subagent.yaml\n```\n\nUse it from a parent CPE instance:\n```yaml\nmcpServers:\n  code_reviewer:\n    command: cpe\n    args: [\"mcp\", \"serve\", \"--config\", \"./subagent.yaml\"]\n    type: stdio\n```\n\n## 🔧 Troubleshooting\n\n### Common Issues\n\n**\"API key missing: ANTHROPIC_API_KEY not set\"**\n- Ensure the environment variable specified in `api_key_env` is exported in your shell\n- Check for typos in the variable name in both your shell and `cpe.yaml`\n- For OAuth authentication, run `cpe account login anthropic` instead of using API keys\n\n**\"no configuration file found\"**\n- Create a `cpe.yaml` in the current directory or your user config directory (see [Configuration File Locations](#configuration-file-locations))\n- Use `--config /path/to/cpe.yaml` to specify an explicit path\n\n**\"model not found: xyz\"**\n- Run `cpe model list` to see available models\n- Check that the `ref` in your `cpe.yaml` matches what you're requesting with `-m`\n\n**MCP server fails to start**\n- Check that the command exists and is executable\n- For stdio servers, ensure the `command` path is correct\n- Use `cpe mcp list-tools \u003cserver\u003e` to debug tool availability\n- Check server logs with `cpe mcp info \u003cserver\u003e`\n\n**\"context length exceeded\"**\n- Use fewer input files or truncate large files\n- Check `context_window` in your model config matches the provider's limits\n- Start a new conversation with `-n` to clear history\n\n**Timeout errors**\n- Increase `timeout` in `defaults` or use `--timeout 10m`\n- For MCP servers, adjust the per-server `timeout` value\n\n### Debug Tips\n\n```bash\n# Check which model is being used\ncpe model info \u003cref\u003e\n\n# View the system prompt being sent (uses -m flag for model selection)\ncpe model system-prompt -m \u003cref\u003e\n\n# Test MCP server connectivity\ncpe mcp list-tools \u003cserver-name\u003e\n\n# Enable verbose output for subagents\ncpe --verbose-subagent \"your prompt\"\n```\n\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nSee [AGENTS.md](./AGENTS.md) for detailed development guidelines, code style, and testing practices.\n\n## 📄 License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspachava753%2Fcpe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspachava753%2Fcpe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspachava753%2Fcpe/lists"}