Aider is a mature, well-architected CLI application that enables AI pair programming in the terminal. It integrates with 100+ LLMs via LiteLLM to help developers edit code in local git repositories. The system is built around a sophisticated coder abstraction that supports multiple edit formats (whole file, diff, search/replace blocks, unified diffs) to accommodate different LLM capabilities. The architecture is plugin-based with a clear separation between the main CLI loop, coder implementations, model management, and repository mapping. Aider automatically commits changes with sensible commit messages, provides linting/testing integration, and supports advanced features like prompt caching, voice input, and a browser-based GUI. The codebase demonstrates strong engineering practices with comprehensive testing, CI/CD pipelines, and careful dependency management. The repo map feature using tree-sitter for code analysis is particularly notable, providing intelligent context about codebases to LLMs. The project maintains high quality through extensive test coverage, pre-commit hooks, and automated benchmarking against coding tasks.
SmallCode is an open-source AI coding assistant CLI designed to run locally on consumer hardware with small language models (8B–35B parameters). It provides a full-screen terminal UI with streaming output, tool execution, and multi-turn agent loops. The system compensates for small-model limitations through a context budget engine, forgiving JSON parser, patch-first editing, early-stop detection, and TODO-driven planning. It supports multiple LLM providers (Ollama, LM Studio, llama.cpp, OpenAI, Anthropic, DeepSeek) with automatic escalation to stronger models on hard failure. The architecture is a monolith agent loop with modular subsystems: a plugin system for tools, commands, and hooks; a skill system for reusable prompt templates; a knowledge injection system for contextual notes; a memory store with SQLite/FTS5; a RAG index for code snippet retrieval; and an MCP client/server for tool interoperability. The codebase includes a compiled MarrowScript cognition layer with typed prompts, output validation, and budget tracking, though the dual implementation (hand-ported JS alongside MarrowScript sources) introduces drift risk. Key entry points include bin/smallcode.js (main CLI), src/tui/fullscreen.js (zero-dependency TUI), and src/compiled/cognition/ (prompts, routers, validation). The agent loop orchestrates user input, model calls, tool dispatch, and improvement loops. The repository also includes benchmark harnesses, trace recording, evaluation runners, and a provider wizard for configuration. Despite being marked as 'dead' in the README, the codebase exhibits high craftsmanship in several reusable components, though the large feature surface and experimental nature suggest maintenance challenges.