pi-rtk

RTK token reduction extension for pi-coding-agent - reduces LLM token consumption 60-90% by intelligently filtering tool output

Package details

extension

Install pi-rtk from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:pi-rtk
Package
pi-rtk
Version
0.1.4
Published
Feb 28, 2026
Downloads
183/mo · 61/wk
Author
mcowger
License
MIT
Types
extension
Size
52.3 KB
Dependencies
0 dependencies · 0 peers
Pi manifest JSON
{
  "extensions": [
    "./index.ts"
  ]
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

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-rtk

Or 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-rtk

Configuration

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 whitespace
  • aggressive: 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