Package Exports
- @trymesh/cli/dist/local-tools.js
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 (@trymesh/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
A terminal-first AI engineering agent. Zero-config, multi-model, verifiable.
Website · Docs · Quickstart · Benchmarks
Mesh is what happens when an engineering agent is built to prove its work instead of perform it. Every code change is gated by an exact verification command extracted from your package.json. Every workspace lookup is an AST-precise capsule, not a regex guess. Every turn is classified into a complexity tier so trivial requests don't drag the full machinery of a multi-file refactor.
npm install -g @trymesh/cli
mesh /startThat's it. No API keys. No config. The shared Mesh gateway routes you to Gemini 2.5 by default.
Why Mesh
| Most AI agents | Mesh |
|---|---|
| Send the whole file to the LLM | AST-precise capsules: exports, generics, JSDoc — not the bodies |
| Trust the model said "tests pass" | Required-verify gate runs the exact command from package.json and fails the turn if it doesn't exit 0 |
| Edit, edit, edit, ship | Anti-thrash hard-block: 3 consecutive edits without a verify pass blocks writes until you diagnose |
| Same prompt for every task | Adaptive scaffolding tiers — trivial / small / complex — drive prompt size, tool budget, capsule depth |
| Forget what worked last time | Task memory — fingerprints similar past tasks, surfaces which tools succeeded vs failed |
Quick start
# Interactive REPL in your project
mesh
# One-shot turn
mesh "explain how the cost router decides between models"
# Force a model
mesh --model pro "refactor invoice.ts to use async/await"
# Inspect the tier + capsule + system prompt WITHOUT spending a token
mesh scaffold inspect "rename Status to JobState across all files"
# Health check
mesh doctor
# Re-index workspace capsules
mesh /indexWhat you get on install
- 🧠 The
meshinteractive REPL (and aliasesmesh-agent,mesh-daemon) - ⚡ 71+ slash commands (
/change,/index,/doctor,/scaffold,/usage, …) - 🔧 100+ workspace tools the agent can call (read, write, grep, run-command, AST refactors, timeline, …)
- 📊 A reproducible bench suite (
static-bench.mjs+llm-bench.mjs+ median runner) - 💾 Persistent
.mesh/capsules/v1/AST capsule store withfs.watchinvalidation - 🎯 Tier-aware adaptive scaffolding tuned over 18 fixture tasks
- 🔄 Zero-config Gemini access via the shared Mesh gateway
Adaptive scaffolding (the secret sauce)
Mesh classifies every turn into one of three tiers and only spins up the machinery that tier actually needs:
| Tier | When it fires | What's active |
|---|---|---|
| trivial | ≤ 2 files, ≤ 300 LOC, QA or single-edit intent | Minimal system prompt (~900 bytes), no capsule, no workflow state, 4-step budget |
| small | ≤ 10 files, single-intent task | Compact path+signatures capsule, evidence ledger in-memory, 8-step budget |
| complex | Refactor / ship / risk=high / ≥ 8 files | Full capsule + reverse-index, workflow state machine, edit-session tracking, 18-step budget, optional ensemble sampling |
Want to see what Mesh is thinking before spending a token?
mesh scaffold inspect "fix the null deref in parse.ts" --capsule --system-promptForce a tier for power-user sessions:
MESH_FORCE_TIER=complex meshConfiguration
Mesh works out of the box. To customize:
# Your own Google API key (bypasses shared gateway)
export GOOGLE_API_KEY=your_key_here
# Your own NVIDIA NIM key
export NVIDIA_API_KEY=your_key_here
# Override default model
export MESH_MODEL_ID=google/gemini-2.5-pro
# Force scaffolding tier
export MESH_FORCE_TIER=complex
# Ensemble sampling for variance reduction (1–3)
export MESH_ENSEMBLE_SIZE=2
# Cap session cost in USD (BudgetExceededError fires above this)
export MESH_MAX_COST_USD=1.00
# Hide the per-turn cost footer in the REPL
export MESH_HIDE_COST=1Or run /start inside Mesh to walk through setup interactively.
Models
Default: google/gemini-2.5-flash via the Mesh shared gateway. Override with --model <alias>:
Google Gemini
| Alias | Model | Notes |
|---|---|---|
flash / default |
google/gemini-2.5-flash |
1M context, fast, default |
pro |
google/gemini-2.5-pro |
Reasoning-heavy tasks |
lite |
google/gemini-2.5-flash-lite |
Max throughput |
3-flash |
google/gemini-3-flash-preview |
Next-gen preview |
3-pro |
google/gemini-3-pro-preview |
Next-gen powerful preview |
NVIDIA NIM
| Alias | Model |
|---|---|
qwen3-coder |
qwen/qwen3-coder-480b-a35b-instruct |
kimi |
moonshotai/kimi-k2.6 |
mistral-large |
mistralai/mistral-large-3-675b-instruct-2512 |
deepseek |
deepseek-ai/deepseek-v4-pro |
llama4 |
meta/llama-4-maverick-17b-128e-instruct |
nemotron |
nvidia/llama-3.1-nemotron-ultra-253b-v1 |
Benchmarks
# Deterministic compression-ratio bench (no LLM, no auth)
node $(npm root -g)/@trymesh/cli/bench/static-bench.mjs
# Live LLM bench against Vertex AI Gemini (requires gcloud auth)
node $(npm root -g)/@trymesh/cli/bench/llm-bench.mjsCurrent floors on a 151-file TypeScript codebase:
| Tier | Compression vs raw |
|---|---|
| compact (small-tier capsule) | ~39× |
| full (complex-tier capsule) | ~21× |
| trivial-tier system prompt | ~936 bytes |
Reproducible via node bench/static-bench.mjs — same files in, same numbers out.
License
Proprietary — © Edgar Baumann. All rights reserved.
For licensing inquiries: edgar.baumann@try-mesh.com
Built by try-mesh.com · edgar.baumann@try-mesh.com