Roadmap
OWL's development priorities, guided by the philosophy: Get out of the model's way.
Now
Currently in progress or next to implement.
UI Polish
Small improvements for better feedback:
- Elapsed time indicator - Show response duration
- Enhanced edit feedback - Display lines added/removed with diff preview
- Grouped file reads - Collapse consecutive reads into summary
Knowledge Relevance Threshold
Filter low-relevance RAG results to reduce noise:
# Only include results above 70% relevance
results = knowledge_store.search(query, min_relevance=0.7)
Next
Planned for near-term implementation.
Better Project Detection
Smarter context from project config files:
| File | Information Extracted |
|---|---|
package.json | Dependencies, scripts, project type |
pyproject.toml | Python deps, build system |
pom.xml / build.gradle | Java project details |
README.md | Project description |
Conversation Export/Import
Backup and migrate sessions:
/export session.json # Export current session
/import session.json # Import session
Auto-Remember
Model can write to memory.md when it learns something important (with user approval), inspired by Molt.bot.
Future
Considering for later. May change based on model improvements.
Permission Patterns
Granular allow/deny by command pattern:
permissions:
allow:
- "git add *"
- "git commit *"
ask:
- "git push *"
deny:
- "rm -rf *"
Session Search
Find past conversations by content:
/search "authentication bug"
MCP Support
Model Context Protocol for standardized tool interfaces and external integrations.
Plugin System
Lightweight extensions without bloating core:
- Custom tools
- Output formatters
- Integration hooks
Team Features
- Shared settings files
- Common knowledge bases
- Synchronized soul evolution (optional)
Decided Against
Features we considered but rejected to keep OWL simple.
Runtime Model Switching
Why rejected: Users can change model in ~/.owl/config.yaml. Runtime switching adds complexity for marginal benefit.
Multi-Model Orchestration
Why rejected: Routing logic is complex, error-prone, and the benefits diminish as models improve. Single good model is simpler.
Philosophy Check
Before adding anything, we ask:
- Can we delete code instead?
- Does this get in the model's way?
- Is this the simplest solution?
- Would this survive a model upgrade?
Features that don't earn their complexity get cut.
Want to contribute? Check GitHub Issues for current priorities.