- Vexp
Vexp
Overview
Local-first context engine for AI coding agents
74% fewer tokens.
100% on your machine.
vexp gives your AI agent only the code that matters — via a local dependency graph with session memory. No cloud. No account. No data leaves your laptop.
›
Free · No account · No credit card · Zero network calls
On mobile? Get the install links by email.
One-time email with install links. No spam.
Works with
Claude Code
Cursor
Windsurf
Copilot
Continue.dev
Zed
Augment
Codex
Opencode
Kilo Code
Kiro
Antigravity
“I spend $400-600 a month on tokens. Any savings I can get is always sought after.”
Power user
720+ downloads12 AI agents supported
The problem
AI agents read everything. They understand nothing.
Every coding session starts the same: the agent scans files, guesses dependencies, and fills your context window with code it will never use. Cloud-based context engines solve this — but send your code to their servers.
Without vexp
8,247tokens
import { authenticate } from "./auth"
import { RateLimiter } from "./limiter"
import { db } from "./database"
import { logger } from "./logger"
import { config } from "./config"
import { User } from "./types/user"
import { Session } from "./types/session"
import { CacheService } from "./cache"
export async function middleware(req, res, next) {
const token = req.headers.authorization
if (!token) return res.status(401).json({ error: "Unauthorized" })
try {
const user = await authenticate(token)
req.user = user
logger.info(`Request from ${user.id}`)
next()
} catch (err) {
logger.error("Auth failed:", err)
res.status(401).json({ error: "Invalid token" })
}
}
export class RateLimiter {
private redis: Redis
private limits: Map<string, number>
constructor(config: RateLimitConfig) {
this.redis = new Redis(config.redisUrl)
this.limits = new Map(Object.entries(config.limits))
}
async check(key: string): Promise<boolean> {
const count = await this.redis.incr(key)
const limit = this.limits.get(key) ?? 100
return count <= limit
}
}
import { authenticate } from "./auth"
import { RateLimiter } from "./limiter"
import { db } from "./database"
import { logger } from "./logger"
import { config } from "./config"
import { User } from "./types/user"
import { Session } from "./types/session"
import { CacheService } from "./cache"
export async function middleware(req, res, next) {
const token = req.headers.authorization
if (!token) return res.status(401).json({ error: "Unauthorized" })
try {
const user = await authenticate(token)
req.user = user
logger.info(`Request from ${user.id}`)
next()
} catch (err) {
logger.error("Auth failed:", err)
res.status(401).json({ error: "Invalid token" })
}
}
export class RateLimiter {
private redis: Redis
private limits: Map<string, number>
constructor(config: RateLimitConfig) {
this.redis = new Redis(config.redisUrl)
this.limits = new Map(Object.entries(config.limits))
}
async check(key: string): Promise<boolean> {
const count = await this.redis.incr(key)
const limit = this.limits.get(key) ?? 100
return count <= limit
}
}
context budget81% used
With vexp
2,140tokens
Project Info
Created At
3 months agoUpdated At
3 months agoAuthor Name
-Star
-Language
-License
-Tags
Homepage
https://vexp.dev/Recommend Servers
View AllPodstow
a day ago
Meteomatics
16 hours ago
Filesystem
@modelcontextprotocol
2 months ago
Runyay Mcp
15 hours ago