The author introduces Capstan, a lightweight coding agent with a C core and hot-reloadable Lua plugins, designed for efficiency and extensibility in development workflows.
Note: English is not my native language, so I used an LLM to help translate this post. Hi everyone! 👋 Over the past few months, I have been building Capstan — a lightweight coding agent with a C core and an embedded Lua runtime. Capstan is distributed as a small single binary for macOS and Linux. It supports custom commands, model tools, lifecycle hooks, reusable skills, MCP and ACP integrations, and multiple model providers. I use it daily in my own projects. In fact, a significant part of Capstan was developed with Capstan itself: it served as an agent harness for different models, completed tasks in its own repository, and helped improve its codebase. Why I built another agent Most CLI agents I know are written in TypeScript or Python. Those languages have obvious advantages, especially when development speed matters, but I wanted to explore a different approach: How compact and resource-efficient can a capable agent be if its core is written in C and its extensibility is delegated to Lua? Of course, tools like this spend most of their time waiting for network requests to the model. My goal was not to prove that C is “the fastest.” I wanted to minimize the parts I could control: local overhead, distribution size, and the number of required dependencies. The second reason was personal: I had wanted to use Lua as a proper embedded language, not only for configuring Neovim. Capstan became a way for me to learn more about agent loops, plugin systems, and interoperability between C and Lua. I designed and wrote the core, agent loop, TUI, and plugin architecture myself. AI helped me study unfamiliar areas, validate decisions, and speed up development. What came out of it One small binary. The main dependencies are statically linked; network requests use the system libcurl. Lua plugins. They can add slash commands, model tools, and lifecycle hooks, as well as launch external processes and interact with the environment. Hot reload. New and modified plugins are picked up without restarting Capstan. Interactive and non-interactive modes. Besides the TUI, Capstan can run from scripts and CI/CD pipelines. Skills, MCP, and ACP support. Permission system. Potentially dangerous actions can require manual confirmation, with explicit configuration available for unattended environments. A minimal ncurses TUI. I also compared Capstan with OpenCode across 36 runs using the same model and tasks. Capstan passed 35 of 36 upstream test runs, while OpenCode passed 36 of 36. In this workload, Capstan used about 10x less local CPU time and 58x less primary-process memory. The full methodology and limitations are documented in the benchmark report (link in the comment). I do not consider this universal proof that Capstan is better. It is a reproducible reference point for tracking quality and resource regressions. How to try it I developed Capstan in my spare time over several months and hesitated for a long time before showing it to the world. It is now useful enough for my daily work, and I would like to know whether this approach could also be useful to other developers. Installation and configuration instructions are available in the repository (link in the comment below) I would especially appreciate feedback on these questions: How easy is it to get started ? Is minimalism and low resource usage a real selling point for a coding agent, or am I optimizing something that doesn’t really matter Is the Lua plugin system easy to understand? What features are missing from the coding agents you use?
The author built a Slack-native coding agent using Claude Code, open-sourcing it to help others with integration, security guardrails, and system prompts without reinventing the wheel.
A tutorial by Sebastian Raschka on setting up a fully local coding agent using open-source tools and open-weight LLMs, covering motivations, setup, and advantages over proprietary services.
1jehuang launched Jcode, an open-source terminal coding agent written in Rust that claims 20x better memory efficiency than Claude Code, allowing dozens of agents to run in parallel.
A developer shares a 20-chapter tutorial rebuilding a Claude Code–style coding agent from scratch, showing the entire agent loop in ~6 lines, with support for local models and multiple LLM APIs.
The author built Nice Coding Agent, an open-source coding workbench with a visible and editable context stack, allowing users to curate exactly what the LLM sees. It features local-first retrieval, sandboxed execution, and hybrid code search, aiming to give developers control and visibility over context assembly.