opencarlOpenCARL - Dynamic rule injection for OpenCode. Rules load when relevant, disappear when not. Adapted from CARL by Chris Kahler.
1
183
4 in 7 days
28.4
Multi-signal model
4 months ago
2026-03-23
Install and configure
opencode.jsonWrites to this project's opencode.json — applies to this repository only.
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencarl@2.1.31"]
}Writes to ~/.config/opencode/opencode.json — applies to every project.
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencarl@2.1.31"]
}If you want to modify the plugin locally, install it into the project and reference the local path.
shell
pnpm add -D opencarlopencode loads npm dependencies through its embedded runtime on startup and caches them locally — no manual global install needed.
OpenCARL
Context Augmentation & Reinforcement Layer — Dynamic rules for OpenCode.
"Rules that load when relevant, disappear when not."
What is OpenCARL?
OpenCARL is a dynamic rule injection plugin for OpenCode. Define your preferences once, and they load automatically when relevant to your current task.
Key Features:
- Keyword-based rule loading
- Star-commands for explicit triggers (
*brief,*deep) - Context-aware behavior
- Global and project-level rules
Documentation
Full documentation: krisgray.github.io/opencarl
Guides:
- Installation Guide
- OpenCARL Overview
- Domain Guide
- Commands Guide
- Manifest Reference
- Context Rules
- Suggest Domain
Tutorials:
- Python API Tutorial — Test-driven development with pytest, mocks, and external APIs
Troubleshooting: Troubleshooting Guide
Quick Start
# 1. Install
npm install opencarl
# 2. Add to opencode.json
echo '{"plugin": ["opencarl"]}' > opencode.json
# 3. Run setup
npx opencarl --local
Restart OpenCode. Type *opencarl for interactive help.
Usage
*opencarl # Interactive help mode
*opencarl docs # View documentation
*brief explain this # Concise response
*deep analyze this # Comprehensive analysis
Rules load automatically when your prompt matches domain keywords (e.g., "fix bug" loads development rules).
CLI Commands
npx opencarl --local # Install for current project
npx opencarl --global # Install for all projects
npx opencarl --integrate # Add OpenCARL section to AGENTS.md
npx opencarl --integrate-opencode # Add docs to opencode.json
npx opencarl --help # Show all options
Configuration
.opencarl/
├── manifest # Domain registry (states + keywords)
├── global # Always-loaded rules
├── commands # Star-command definitions
└── {domain} # Custom domains (lowercase, no extension)
Troubleshooting
| Problem | Fix |
|---|---|
| Rules not loading | Check STATE=active in manifest |
| Plugin not found | Verify opencode.json has "plugin": ["opencarl"] |
| Domain ignored | Filename must be lowercase, no extension |
Debug mode: OPENCARL_DEBUG=true
Full guide: Troubleshooting Guide
License
MIT License. See LICENSE for details.
OpenCode is powerful. OpenCARL makes it personal.