pi-rtk
v0.1.4
Published
RTK token reduction extension for pi-coding-agent - reduces LLM token consumption 60-90% by intelligently filtering tool output
Downloads
546
Maintainers
Readme
RTK Plugin for Pi-Coding-Agent
A token reduction plugin for pi-coding-agent that intelligently filters tool output to reduce token consumption by 60-90% while preserving essential information.
Based on the RTK (Rust Token Killer) specification from RTK.
Features
- Source Code Filtering: Remove comments and normalize whitespace (minimal) or keep only signatures (aggressive)
- Build Output Filtering: Remove compilation noise, keep only errors and warnings
- Test Output Aggregation: Summarize test results, show failures only
- Git Compaction: Compact diffs, status, and log output
- Search Result Grouping: Group grep results by file with counts
- Linter Aggregation: Summarize lint errors by rule and file
- ANSI Stripping: Remove color codes and formatting
- Smart Truncation: Intelligently truncate large outputs
Installation
Recommended: install the package via the pi package manager.
Using pi install (recommended)
pi install npm:pi-rtkOr add the package to your pi agent config to load automatically. Edit ~/.pi/agent/settings.json and include:
{
"packages": [
"npm:pi-rtk"
]
}If you need to install manually (older pi versions), you can clone into the extensions directory:
git clone https://github.com/mcowger/pi-rtk ~/.pi/agent/extensions/pi-rtkConfiguration
Create ~/.pi/agent/rtk-config.json:
{
"enabled": true,
"logSavings": true,
"showUpdateEvery": 10,
"techniques": {
"ansiStripping": true,
"truncation": { "enabled": true, "maxChars": 10000 },
"sourceCodeFiltering": { "enabled": true, "level": "minimal" },
"smartTruncation": { "enabled": true, "maxLines": 200 },
"testOutputAggregation": true,
"buildOutputFiltering": true,
"gitCompaction": true,
"searchResultGrouping": true,
"linterAggregation": true
}
}Filter Levels
minimal: Remove comments, normalize whitespaceaggressive: Keep only signatures and structure
Source code filtering can be toggled independently of its level via commands or the rtk_configure tool.
Commands
/rtk-stats- Show token savings statistics/rtk-on//rtk-off- Enable/disable token reduction/rtk-clear- Clear metrics history/rtk-what- Show current technique configuration/rtk-toggle-ansiStripping- Toggle ANSI stripping/rtk-toggle-truncation- Toggle output truncation/rtk-toggle-sourceCodeFiltering- Toggle source code filtering/rtk-toggle-smartTruncation- Toggle smart truncation/rtk-toggle-testOutputAggregation- Toggle test output aggregation/rtk-toggle-buildOutputFiltering- Toggle build output filtering/rtk-toggle-gitCompaction- Toggle git compaction/rtk-toggle-searchResultGrouping- Toggle search result grouping/rtk-toggle-linterAggregation- Toggle linter aggregation
Agent Tool
The rtk_configure tool is registered for use by the AI agent to programmatically adjust any RTK parameter at runtime. This is particularly useful when file edits fail due to text-matching errors: the agent can temporarily disable sourceCodeFiltering, re-read the file, apply the edit, and re-enable filtering.
Supported Languages
- TypeScript/JavaScript
- Python
- Rust
- Go
- Java
- C/C++
Token Savings
| Output Type | Expected Savings | |-------------|------------------| | Source code | 60-90% (aggressive mode) | | Build output | 70-90% | | Test results | 50-80% | | Git output | 60-80% | | Search results | 40-60% |
Architecture
The plugin intercepts tool_result events and applies appropriate filtering based on:
- Tool type (bash, read, grep)
- Command context (build, test, git, etc.)
- File extension for source code
Metrics are tracked in-memory and can be viewed with /rtk-stats.
License
MIT - Based on the RTK specification
