Lynkr (@LynkrDev) profile picture

Developer | AI enthusiast

Santa Clara CA
Joined June 2014
Photo by Lynkr (@LynkrDev)Photo by Lynkr (@LynkrDev)Photo by Lynkr (@LynkrDev)Photo by Lynkr (@LynkrDev)Photo by Lynkr (@LynkrDev)Photo by Lynkr (@LynkrDev)Photo by Lynkr (@LynkrDev)Photo by Lynkr (@LynkrDev)Photo by Lynkr (@LynkrDev)Photo by Lynkr (@LynkrDev)
Introducing Caret: an open-source, Cursor-class AI code editor. No bundled Chromium. No Node at run time. One Rust process plus the WebView your OS already ships. MIT licensed. Bring your own keys. Or bring no keys at all: point it at Ollama for chat, Tab and embeddings and it runs fully local. github.com/Fast-Editor/Caret WHY I BUILT IT @cursor_ai proved what an AI-native editor should feel like. But every Electron editor ships a whole browser and a Node extension host just to show you a text file. I wanted the full Cursor feature set, engineered for memory from day one, with nothing leaving my machine except the model calls I choose to make. THE NUMBERS (release build, Apple Silicon) • Rust core: ~110 MB RSS idle with a workspace open • Whole process family, settled idle: ~250 MB • First paint: ~330 ms • Quick open: 8 ms • Project-wide search: 33 ms • Hybrid codebase search (BM25 + embeddings): 82 ms • Binary: 30 MB. The whole .app: 34 MB. WHAT'S INSIDE Tab: multi-line ghost text from any model you configure, partial accept, next-edit prediction ("Tab to jump"), context from recent edits, open files and diagnostics. ⌘K: inline edit and generate with a streaming diff and accept/reject. Terminal ⌘K turns plain English into shell commands. Agent: Agent / Ask / Plan / Debug plus custom modes. Tools for read, grep, fuzzy and semantic codebase search, edit, shell with approvals, web search and fetch, todos, memory, subagents, MCP and browser automation. Checkpoints. Per-file review with accept/reject. Queued messages. Context-window summarization. Usage and cost on every reply. @-mentions: Files, Folders, Code, Codebase, Git (diff, staged, branch diff, commits), Web, Docs, Terminals, Lint errors, Recent changes, Past chats, Rules, Skills, MCP resources, images. Rules and knowledge: .caret/rules/*.mdc, .cursorrules, AGENTS.md, CLAUDE.md, memories, hooks, slash commands, SKILL.md skills, subagents, plans. Bugbot-style review: review your working tree, staged changes, a branch or a commit for real defects. Jump to line. "Fix in chat." Background agents: parallel sessions, optional git worktree isolation, a chat-centric Agents layout. MCP: stdio, streamable-HTTP and SSE servers from .caret/mcp.json, or your existing .cursor/mcp.json. A real editor: Monaco (VS Code's editor core), split groups, diff editor, LSP for TypeScript, rust-analyzer, Pyright, gopls, clangd and more, git gutter and blame, integrated terminal with splits, source control UI with AI commit messages, command palette, keybindings editor, full settings UI. THE THREE THINGS I'M PROUDEST OF 1. ACP: use the agents you already pay for. Pick Claude Code, Codex, Gemini CLI, OpenCode, Pi, GLM or any Agent Client Protocol agent per chat, straight from the composer. It runs locally with its own login and subscription. Its streaming text, thoughts, tool calls, permission prompts, diffs and terminals all flow through Caret's UI, with checkpoints and the review bar. No second API bill. 2. Auto routing that is actually a router. "Auto" does not mean "the default model." A managed Lynkr sidecar (github.com/Fast-Editor/Lynkr, also open source) scores every request SIMPLE → MEDIUM → COMPLEX → REASONING and picks one of YOUR configured models per tier. Sticky sessions. Fallback climbing on errors and rate limits. Caret still executes with its own providers and keys, and every reply shows Auto → model · TIER. 3. Command safety below the model. Every agent shell command is parsed into a POSIX shell AST, including nested sh -c, eval and $( ), then classified: safe / caution / destructive / blocked. Destructive always asks. Blocked never runs. Approved commands execute under macOS Seatbelt or Linux bubblewrap: writes limited to the workspace and temp, credential folders unreadable, optional no-network. MCP tool descriptions are pinned, so a tool that silently changes has to be re-approved. ABOUT LYNKR Lynkr is the open-source LLM router behind Auto, and a project in its own right: github.com/Fast-Editor/Lynkr. It scores each request's complexity, routes across tiers, pins sessions, climbs to a stronger tier on errors or rate limits, and keeps improving with bandit and de-escalation learning, circuit breakers and budget tracking. It also runs standalone as an OpenAI-compatible server on localhost, so any client that accepts a base URL can route through it, not just Caret. Caret installs a pinned release into ~/.caret/lynkr with one click and never touches an existing Lynkr install. PROVIDERS, AND HOW BYOK ACTUALLY WORKS @AnthropicAI (adaptive thinking, effort, prompt caching), @OpenAI , @Azure , @GeminiApp , and anything OpenAI-compatible: Ollama, OpenRouter, LM Studio, vLLM, llama.cpp, your own proxy or gateway. Local embeddings via Ollama. There is no Caret account and no Caret server. Paste a key in Settings → Models or import it from your environment. Requests go straight to the provider at the base URL you set, and per-model prices turn into a real cost figure on every reply. Nothing leaves your machine except the model calls you configured. Even with Auto routing on, the Lynkr sidecar only ever holds a loopback token; your keys stay in the secrets file. ALREADY ON CURSOR? Caret reads .cursor/rules, .cursor/mcp.json, .cursor/hooks.json, .cursor/commands, .cursor/skills, .cursor/agents and .cursorignore. Open your repo and it works unchanged. WHERE IT IS TODAY Verified end to end on macOS, Apple Silicon. Linux and Windows build through Tauri 2 but are untested. ~21k lines of Rust, ~16k lines of TypeScript, 200+ Rust tests (including real Seatbelt enforcement), 112 frontend tests, strict TypeScript. Not there yet: voice dictation, computer use, cloud/remote agents, an extension marketplace. I'd rather tell you now than have you find out. Star it, break it, file issues. I'll be in the replies.
13
1
1
18
737
BUILD IT YOURSELF git clone github.com/Fast-Editor/Caret cd Caret && npm install && npm run dev Build-from-source steps, architecture, sandbox, ACP and performance docs are all in the repo. Caret is independent and not affiliated with Anysphere/Cursor. Monaco is © Microsoft.
2
56
Lynkr retweeted
I’ve left Anthropic after more than a year of working on Claude Code and seeing it scale larger than I ever imagined. I have really loved working at Ant and believe deeply in the mission, and most of all, the idea of a race to the top. The idea that if we work hard and responsibly, we can raise the bar and inspire others to great outcomes. And if we all push each other to be better, things can be radically good. I will carry the spirit of this with me forever. My colleagues at Anthropic are the most talented, thoughtful, competent, and earnest people I have ever met. I am glad they are at the wheel and trust them deeply. To the community on X, thank you for everything. You’ve made this the most fun (and sometimes stressful) job I’ve ever had. For me, it is time for a bit of a break before diving into something new. If you want more excellent Claude Code content, you should follow @addyosmani , @lydiahallie, @_catwu, @ClaudeDevs and of course @bcherny who started it all.
2,237
1,114
874
31,658
6,412,241
My Learnings while creating a custom inference engine for Qwen 35B A3B model
1
2
4
663
We benchmarked a self-hosted LLM router against openrouter/auto. Auto turned out to be one model
1
1
386
Lynkr now uses @typesafeai 's Jev to make @claudeai 's tier-routing more accurate. It specifically works well with Claude Pro/Max subscription The basic router uses embedding anchors to quickly estimate task complexity. It’s fast and offline, but it only sees the geometry of the request — and sometimes that geometry lies. Jev adds a semantic vote on the actual task. It predicts the model tier with native confidence, helping Lynkr distinguish between requests that may look similar in embedding space but require very different levels of reasoning. That means: → Simple tasks stay on Haiku → Complex tasks can move to Sonnet → Deep reasoning tasks can reach Opus → Jev can correct an overly aggressive or conservative anchor decision → Low-confidence Jev results fail soft, leaving the fast router in control Jev doesn't replace the fast router. Anchors provide speed. Jev provides semantic judgment. Together they make tier-routing more reliable. #AI #LLM #ModelRouting #AIEngineering #Claude #ClaudeCode #AIAgents #OpenSource #TypeSafe #Jev
2
109
Inception Labs just released a diffusion model that generates text in parallel instead of one token at a time.Think image diffusion — but for language.Mercury 2.5 hits 1,107 tokens/sec on NVIDIA GPUs. It’s a fundamentally different way of generating text.
6
1
3
756
Kimi Linear: the first linear attention that actually beats full attention. I read the paper so you
2
2
672
DeepSeek V4.1-Flash: I read the 58-page paper so you don't have to
1
1
425
A 35B language model running on an iPhone using only 1–2.5 GB of peak memory. No cloud. No remote server. No desktop GPU. Today, we’re open-sourcing Edge0 — a framework for running large AI models fully on-device.
391
829
151
10,228
727,134
Your model router is guessing. Ours was too. So this week we taught Lynkr what models can actually do. Before: Every request got one difficulty score, 0-100, and a tier band picked the model. A 46 and a 63 both say "MEDIUM" but mean completely different things. Score-based routing can't see that. Now: Each request is scored on 4 capability axes — reasoning, codegen, debugging, tool_use — and each model carries a measured capability profile. The router serves the cheapest model that covers the requirement vector within tolerance. A compare-architectures task scoring 63 looks COMPLEX on a scalar, but per-head nothing exceeds 0.5 — so it serves the $0.97 model instead of the $1.40 flagship, with zero shortfall. Same answer, 31% cheaper, proven in the logs before we enabled serving. Killing latency alongside cost: embeddings moved in-process via ONNX (8–10ms warm, no Ollama round-trip on the routing hot path), and the whole thing shadow-computed for a week — logging what it would do — before touching a single live decision. It caught legacy over-provisioning four turns in a row on day one. Plus provider #16: @FireworksAI_HQ 's AI. We have added @FireworksAI_HQ as one of the providers in Lynkr. With this you can use any model hosted on their platform inside your coding workflows. ` npm i -g lynkr ` Route by capability, pay for what you use. @ClaudeDevs Lynkr works with your existing Claude pro/max subscription (this only works in claude code & @claudeai Desktop ) and helps you get 2x more from your limits by intelligently routing your requests to various models within claude ecosystem This week we also launched OpenCode-wrap ` npx opencode-wrap ` which can help you get an openai endpoint which points to the @opencode 's free/Go models (you should have opencode installed). With this I was able to get @Meta 's muse spark 1.3 model (subject to Opencode limits which are very generous) for free and used it in Simple/Medium tier inside Lynkr, with other tiers pointing to Claude sonnet 5 and opus models. @thdxr @sama @Zai_org @lqiao @the_bunny_chen @dzhulgakov
2
150