High-signal developer tools
built for AI coding agents.
Skim Tools
Language-specific, AST-resilient code navigators. Two surgical primitives (glance and block) that break the infinite agent reading loop.
- ✕Context Exhaustion: Dumping 1,000–5,000 line files burns token limits and causes attention drift.
- ✕The Test Bloat Trap: Test files and mocks make up 50–75% of codebases, flooding prompts with noise.
- ✕Grep Truncation: Arbitrary line windows cut off signatures, docstrings, or closing braces.
- ✕Infinite Read Loop: File A references File B references File C — draining tool allowances.
Map types, functions, methods, and interfaces without bodies. Filters out test noise automatically.
skim-<lang> glance -s <path>Extract exact AST-bounded declaration blocks with comments and gutters. Never misses a closing brace.
skim-<lang> block <file> <target>AST-Resilient Extraction Engine
Unlike regex or grep line windows, skim commands parse syntactic trees. You get complete class/method bodies, comments, and parameter signatures every single time.
Supported Ecosystems & Installation
Install only the binaries you need for your stack.
Go
Built with standard go/parser (zero deps)
Rust
Powered by ra_ap_syntax (Rust Analyzer engine)
TypeScript / JS
TypeScript Compiler API + Vue, Svelte, Astro SFCs
Python
Built with standard ast parser with parso syntax error fallback
How to Teach Your Coding Agent
Equip Antigravity, Claude Code, Codex or OpenCode with the skim mental model so they stop ingesting massive files automatically.
Or have your agent install and configure it for you
Paste this meta-prompt directly into your coding assistant chat. The agent will inspect your machine's package managers, install the binaries you need, and wire up your global system instructions.
I want to equip you with the `skim-*` code navigation tools (Go, Rust, TypeScript, Python) to minimize AI context waste and avoid reading entire files.
### 1. Installation Commands
- TypeScript / JS: `npm install -g skim-ts`
- Go: `go install github.com/benedictjohannes/programming-helper-utils/skim-go@latest`
- Rust: `cargo install skim-rs`
- Python: `pipx install skim-python` (or `uv tool install skim-python` / `pip install --user skim-python`)
### 2. Instructions for You (the Agent)
1. Ask me which of these languages I work with (or if I want all of them).
2. Check if the relevant `skim-*` binaries are already on my `$PATH`. If not, run or guide me through running the matching install command(s) above.
3. Confirm with me where my global instructions / system prompt file is located (e.g. AGY global rules, `CLAUDE.md`, `.cursorrules`, etc.), and ask if I would like to tweak the wording before appending the template below.
---
### Template for Inclusion in Global Instructions
# Exploring Code Efficiently with skim-*
For py, go, rs, and TypeScript family (ts, tsx, js, jsx, mts, vue, svelte, astro), prefer `skim-py`, `skim-go`, `skim-rs`, and `skim-ts` over fully reading files or blind grep:
- `skim-<lang> glance [options] <path>...`: Outline files/directories without reading full bodies.
- -s: Show declarations & return types (omits function/method bodies).
- -d: Expand struct fields, interface members, enum variants, and class properties.
- -u: List top-level imports / use statements.
- -f <text>: Case-insensitive keyword filter (repeatable for AND match).
- -t: Include test files and test blocks (excluded by default).
- `skim-<lang> block [options] <file> <target>`: Extract verbatim code block with line gutters.
- Target format: Standalone name or qualified member (Type.Method / Type::method).
- --raw: Print without line number gutters (for clean copy & tool edit targeting).
- -t: Search within test files/blocks.
Recommended Workflow:
1. `skim-<lang> glance <path> -s` (optionally `-f <keyword>`) to locate relevant types/functions.
2. `skim-<lang> block <file> <target>` to inspect only the required function or struct.Manual Agent System Prompt Snippet
Paste this into your global agent instructions (~/.gemini/GEMINI.md, ~/.claude/CLAUDE.md, or other global rule file).
# Exploring Code Efficiently with skim-*
For py, go, rs, and TypeScript family (ts, tsx, js, jsx, mts, vue, svelte, astro), prefer `skim-py`, `skim-go`, `skim-rs`, and `skim-ts` over fully reading files or blind grep:
- `skim-<lang> glance [options] <path>...`: Outline files/directories without reading full bodies.
- -s: Show declarations & return types (omits function/method bodies).
- -d: Expand struct fields, interface members, enum variants, and class properties.
- -u: List top-level imports / use statements.
- -f <text>: Case-insensitive keyword filter (repeatable for AND match).
- -t: Include test files and test blocks (excluded by default).
- `skim-<lang> block [options] <file> <target>`: Extract verbatim code block with line gutters.
- Target format: Standalone name or qualified member (Type.Method / Type::method).
- --raw: Print without line number gutters (for clean copy & tool edit targeting).
- -t: Search within test files/blocks.
Recommended Workflow:
1. `skim-<lang> glance <path> -s` (optionally `-f <keyword>`) to locate relevant types/functions.
2. `skim-<lang> block <file> <target>` to inspect only the required function or struct.Coding Transcript Viewer
A lightweight, standalone single-file HTML viewer for AI agent conversation transcripts. Review, debug, and share agent trajectories with total privacy.
100% Client-Side Privacy
All parsing, search, and diffing execute strictly inside your local browser runtime. Zero logs, zero telemetry, zero uploads.
Tested on real transcripts
Fully tested and optimized for Antigravity and OpenCode sessions. More are coming.
Interactive Diffs & Terminals
Side-by-side Target vs. Replacement diff visualization for tool edits, syntax highlighting across 9 languages, and terminal styling.
Recursive Collapsing
Deep collapse conversation turns, XML tag bubbles (<USER_REQUEST>, etc.), and individual tool calls to keep reviews fast.
Real-Time Search & Cycling
Real-time regex & full-text match navigation with Enter / Shift+Enter, smooth scrolling, and flash highlights.
Single-File HTML Distribution
Compiles JS, CSS, and icons into a single self-contained dist/index.html with zero CDN or external dependencies.