mirror of
https://github.com/rtk-ai/rtk.git
synced 2026-09-19 07:33:17 +08:00
2e194efb3a
- add PATHEXT-aware command resolution via which\n- migrate affected command runners to resolved_command\n- add regression coverage for wrapper/fallback behavior
338 lines
7.0 KiB
Markdown
338 lines
7.0 KiB
Markdown
# RTK Troubleshooting Guide
|
|
|
|
## Problem: "rtk gain" command not found
|
|
|
|
### Symptom
|
|
```bash
|
|
$ rtk --version
|
|
rtk 1.0.0 # (or similar)
|
|
|
|
$ rtk gain
|
|
rtk: 'gain' is not a rtk command. See 'rtk --help'.
|
|
```
|
|
|
|
### Root Cause
|
|
You installed the **wrong rtk package**. You have **Rust Type Kit** (reachingforthejack/rtk) instead of **Rust Token Killer** (rtk-ai/rtk).
|
|
|
|
### Solution
|
|
|
|
**1. Uninstall the wrong package:**
|
|
```bash
|
|
cargo uninstall rtk
|
|
```
|
|
|
|
**2. Install the correct one (Token Killer):**
|
|
|
|
#### Quick Install (Linux/macOS)
|
|
```bash
|
|
curl -fsSL https://github.com/rtk-ai/rtk/blob/master/install.sh | sh
|
|
```
|
|
|
|
#### Alternative: Manual Installation
|
|
```bash
|
|
cargo install --git https://github.com/rtk-ai/rtk
|
|
```
|
|
|
|
**3. Verify installation:**
|
|
```bash
|
|
rtk --version
|
|
rtk gain # MUST show token savings stats, not error
|
|
```
|
|
|
|
If `rtk gain` now works, installation is correct.
|
|
|
|
---
|
|
|
|
## Problem: Confusion Between Two "rtk" Projects
|
|
|
|
### The Two Projects
|
|
|
|
| Project | Repository | Purpose | Key Command |
|
|
|---------|-----------|---------|-------------|
|
|
| **Rust Token Killer** ✅ | rtk-ai/rtk | LLM token optimizer for Claude Code | `rtk gain` |
|
|
| **Rust Type Kit** ❌ | reachingforthejack/rtk | Rust codebase query and type generator | `rtk query` |
|
|
|
|
### How to Identify Which One You Have
|
|
|
|
```bash
|
|
# Check if "gain" command exists
|
|
rtk gain
|
|
|
|
# Token Killer → Shows token savings stats
|
|
# Type Kit → Error: "gain is not a rtk command"
|
|
```
|
|
|
|
---
|
|
|
|
## Problem: cargo install rtk installs wrong package
|
|
|
|
### Why This Happens
|
|
If **Rust Type Kit** is published to crates.io under the name `rtk`, running `cargo install rtk` will install the wrong package.
|
|
|
|
### Solution
|
|
**NEVER use** `cargo install rtk` without verifying.
|
|
|
|
**Always use explicit repository URLs:**
|
|
|
|
```bash
|
|
# CORRECT - Token Killer
|
|
cargo install --git https://github.com/rtk-ai/rtk
|
|
|
|
# OR install from fork
|
|
git clone https://github.com/rtk-ai/rtk.git
|
|
cd rtk && git checkout feat/all-features
|
|
cargo install --path . --force
|
|
```
|
|
|
|
**After any installation, ALWAYS verify:**
|
|
```bash
|
|
rtk gain # Must work if you want Token Killer
|
|
```
|
|
|
|
---
|
|
|
|
## Problem: RTK not working in Claude Code
|
|
|
|
### Symptom
|
|
Claude Code doesn't seem to be using rtk, outputs are verbose.
|
|
|
|
### Checklist
|
|
|
|
**1. Verify rtk is installed and correct:**
|
|
```bash
|
|
rtk --version
|
|
rtk gain # Must show stats
|
|
```
|
|
|
|
**2. Initialize rtk for Claude Code:**
|
|
```bash
|
|
# Global (all projects)
|
|
rtk init --global
|
|
|
|
# Per-project
|
|
cd /your/project
|
|
rtk init
|
|
```
|
|
|
|
**3. Verify CLAUDE.md file exists:**
|
|
```bash
|
|
# Check global
|
|
cat ~/.claude/CLAUDE.md | grep rtk
|
|
|
|
# Check project
|
|
cat ./CLAUDE.md | grep rtk
|
|
```
|
|
|
|
**4. Install auto-rewrite hook (recommended for automatic RTK usage):**
|
|
|
|
**Option A: Automatic (recommended)**
|
|
```bash
|
|
rtk init -g
|
|
# → Installs hook + RTK.md automatically
|
|
# → Follow printed instructions to add hook to ~/.claude/settings.json
|
|
# → Restart Claude Code
|
|
|
|
# Verify installation
|
|
rtk init --show # Should show "✅ Hook: executable, with guards"
|
|
```
|
|
|
|
**Option B: Manual (fallback)**
|
|
```bash
|
|
# Copy hook to Claude Code hooks directory
|
|
mkdir -p ~/.claude/hooks
|
|
cp .claude/hooks/rtk-rewrite.sh ~/.claude/hooks/
|
|
chmod +x ~/.claude/hooks/rtk-rewrite.sh
|
|
```
|
|
|
|
Then add to `~/.claude/settings.json` (replace `~` with full path):
|
|
```json
|
|
{
|
|
"hooks": {
|
|
"PreToolUse": [
|
|
{
|
|
"matcher": "Bash",
|
|
"hooks": [
|
|
{
|
|
"type": "command",
|
|
"command": "/Users/yourname/.claude/hooks/rtk-rewrite.sh"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
**Note**: Use absolute path in `settings.json`, not `~/.claude/...`
|
|
|
|
---
|
|
|
|
## Problem: RTK not working in OpenCode
|
|
|
|
### Symptom
|
|
OpenCode runs commands without rtk, outputs are verbose.
|
|
|
|
### Checklist
|
|
|
|
**1. Verify rtk is installed and correct:**
|
|
```bash
|
|
rtk --version
|
|
rtk gain # Must show stats
|
|
```
|
|
|
|
**2. Install the OpenCode plugin (global only):**
|
|
```bash
|
|
rtk init -g --opencode
|
|
```
|
|
|
|
**3. Verify plugin file exists:**
|
|
```bash
|
|
ls -la ~/.config/opencode/plugins/rtk.ts
|
|
```
|
|
|
|
**4. Restart OpenCode**
|
|
OpenCode must be restarted to load the plugin.
|
|
|
|
**5. Verify status:**
|
|
```bash
|
|
rtk init --show # Should show "OpenCode: plugin installed"
|
|
```
|
|
|
|
---
|
|
|
|
## Problem: RTK commands fail on Windows ("program not found" or "No such file")
|
|
|
|
### Symptom
|
|
```
|
|
rtk vitest --run
|
|
# Error: program not found
|
|
# Or: The system cannot find the file specified
|
|
|
|
rtk lint .
|
|
# Error: No such file or directory
|
|
```
|
|
|
|
### Root Cause
|
|
On Windows, Node.js tools (vitest, eslint, tsc, etc.) are installed as `.CMD` or `.BAT` wrapper scripts, not as native `.exe` binaries. Rust's `std::process::Command::new("vitest")` does not honor the Windows `PATHEXT` environment variable, so it cannot find `vitest.CMD` even when it's on PATH.
|
|
|
|
### Solution
|
|
Update to rtk v0.23.1+ which resolves this via the `which` crate for proper PATH+PATHEXT resolution. All 16+ command modules now use `resolved_command()` instead of `Command::new()`.
|
|
|
|
```bash
|
|
cargo install --git https://github.com/rtk-ai/rtk
|
|
rtk --version # Should be 0.23.1+
|
|
```
|
|
|
|
### Affected Commands
|
|
All commands that spawn external tools: `rtk vitest`, `rtk lint`, `rtk tsc`, `rtk pnpm`, `rtk playwright`, `rtk prisma`, `rtk next`, `rtk prettier`, `rtk ruff`, `rtk pytest`, `rtk pip`, `rtk mypy`, `rtk golangci-lint`, and others.
|
|
|
|
---
|
|
|
|
## Problem: "command not found: rtk" after installation
|
|
|
|
### Symptom
|
|
```bash
|
|
$ cargo install --path . --force
|
|
Compiling rtk v0.7.1
|
|
Finished release [optimized] target(s)
|
|
Installing ~/.cargo/bin/rtk
|
|
|
|
$ rtk --version
|
|
zsh: command not found: rtk
|
|
```
|
|
|
|
### Root Cause
|
|
`~/.cargo/bin` is not in your PATH.
|
|
|
|
### Solution
|
|
|
|
**1. Check if cargo bin is in PATH:**
|
|
```bash
|
|
echo $PATH | grep -o '[^:]*\.cargo[^:]*'
|
|
```
|
|
|
|
**2. If not found, add to PATH:**
|
|
|
|
For **bash** (`~/.bashrc`):
|
|
```bash
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
|
```
|
|
|
|
For **zsh** (`~/.zshrc`):
|
|
```bash
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
|
```
|
|
|
|
For **fish** (`~/.config/fish/config.fish`):
|
|
```fish
|
|
set -gx PATH $HOME/.cargo/bin $PATH
|
|
```
|
|
|
|
**3. Reload shell config:**
|
|
```bash
|
|
source ~/.bashrc # or ~/.zshrc or restart terminal
|
|
```
|
|
|
|
**4. Verify:**
|
|
```bash
|
|
which rtk
|
|
rtk --version
|
|
rtk gain
|
|
```
|
|
|
|
---
|
|
|
|
## Problem: Compilation errors during installation
|
|
|
|
### Symptom
|
|
```bash
|
|
$ cargo install --path .
|
|
error: failed to compile rtk v0.7.1
|
|
```
|
|
|
|
### Solutions
|
|
|
|
**1. Update Rust toolchain:**
|
|
```bash
|
|
rustup update stable
|
|
rustup default stable
|
|
```
|
|
|
|
**2. Clean and rebuild:**
|
|
```bash
|
|
cargo clean
|
|
cargo build --release
|
|
cargo install --path . --force
|
|
```
|
|
|
|
**3. Check Rust version (minimum required):**
|
|
```bash
|
|
rustc --version # Should be 1.70+ for most features
|
|
```
|
|
|
|
**4. If still fails, report issue:**
|
|
- GitHub: https://github.com/rtk-ai/rtk/issues
|
|
|
|
---
|
|
|
|
## Need More Help?
|
|
|
|
**Report issues:**
|
|
- Fork-specific: https://github.com/rtk-ai/rtk/issues
|
|
- Upstream: https://github.com/rtk-ai/rtk/issues
|
|
|
|
**Run the diagnostic script:**
|
|
```bash
|
|
# From the rtk repository root
|
|
bash scripts/check-installation.sh
|
|
```
|
|
|
|
This script will check:
|
|
- ✅ RTK installed and in PATH
|
|
- ✅ Correct version (Token Killer, not Type Kit)
|
|
- ✅ Available features (pnpm, vitest, next, etc.)
|
|
- ✅ Claude Code integration (CLAUDE.md files)
|
|
- ✅ Auto-rewrite hook status
|
|
|
|
The script provides specific fix commands for any issues found.
|