Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@goobits/typemill) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
TypeMill
Pure Rust MCP server bridging Language Server Protocol functionality to AI coding assistants
Quick Start β’ Features β’ Tools β’ Documentation
Quick Start
npx @goobits/typemill startThat's it. No installation required.
What Can TypeMill Do?
π Rename Across Your Entire Codebase
Before: After:
βββ src/ βββ src/
β βββ utils.ts ββββββββββββββΊ β βββ helpers.ts
β βββ app.ts β βββ app.ts
β β import { foo } from './utils'β β import { foo } from './helpers' β Updated!
β βββ index.ts β βββ index.ts
β import './utils' β import './helpers' β Updated!π Move Files with Automatic Import Updates
Before: After:
βββ src/ βββ src/
β βββ components/ β βββ components/
β β βββ Button.tsx β β βββ ui/
β βββ App.tsx β β βββ Button.tsx βββ Moved!
β import { Button } β βββ App.tsx
β from './components/Button' β import { Button }
β β from './components/ui/Button' β Fixed!π Understand Code Instantly
> inspect_code("src/server.ts", line=42, character=15)
{
"definition": "src/types.ts:18",
"type": "interface ServerConfig { port: number; host: string; }",
"references": [
"src/server.ts:42",
"src/server.ts:67",
"src/config.ts:12"
]
}π§ Extract, Inline, Transform
// Before: Messy inline code
const result = items
.filter(x => x.active)
.map(x => x.value * 2)
.reduce((a, b) => a + b, 0);
// After: refactor action="extract" kind="function" name="calculateActiveTotal"
function calculateActiveTotal(items: Item[]): number {
return items
.filter(x => x.active)
.map(x => x.value * 2)
.reduce((a, b) => a + b, 0);
}
const result = calculateActiveTotal(items);Architecture
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β AI Assistant β
β (Claude Code / Claude Desktop) β
βββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β MCP Protocol (stdio/WebSocket)
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β TypeMill β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
β β inspect_codeβ β rename_all β β workspace β β
β β search_code β β relocate β β β’ find_replace β β
β β β β prune β β β’ extract_dependencies β β
β β β β refactor β β β’ verify β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββ
β Language Server Protocol
βββββββββββββββββββββΌββββββββββββββββββββ
βΌ βΌ βΌ
βββββββββββββββ βββββββββββββββ βββββββββββββββ
β typescript- β β rust- β β pylsp β
β language- β β analyzer β β β
β server β β β β β
βββββββββββββββ βββββββββββββββ βββββββββββββββ
.ts .js .rs .pyTools
| Tool | Description |
|---|---|
inspect_code |
Get definition, references, type info, diagnostics at a position |
search_code |
Search workspace symbols with fuzzy matching |
rename_all |
Rename symbols, files, or directories (updates all imports) |
relocate |
Move symbols, files, or directories |
prune |
Delete with cleanup (removes unused imports) |
refactor |
Extract functions, inline variables, reorder code |
workspace |
Find/replace, dependency extraction, project verification |
All refactoring tools support dry-run mode (default) for safe previews.
Installation
Option 1: npx (Recommended)
npx @goobits/typemill startSupported platforms for the npm package build: macOS (arm64) and Linux (arm64).
Option 2: Global Install
npm install -g @goobits/typemill
typemill startOption 3: Build from Source
git clone https://github.com/goobits/typemill
cd typemill
cargo build --release
./target/release/mill startConfiguration
Add to Claude Desktop (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"typemill": {
"command": "npx",
"args": ["@goobits/typemill", "start"]
}
}
}Supported Languages
| Language | LSP Server | Extensions |
|---|---|---|
| TypeScript/JavaScript | typescript-language-server | .ts .tsx .js .jsx |
| Rust | rust-analyzer | .rs |
| Python | pylsp | .py |
License
MIT