Aider as a non-agentic coding tool strikes a nice balance on the efficiency vs effectiveness front. Using tree-sitter to create a repo map of the repository means less filesystem digging. No MCP, but shell commands mean it can use utilities I myself am familiar with. Combined with Cerebras as a provider, the turnaround on prompts is instant; I can stay involved rather than waiting on multiple rounds of tool calls. It's my go-to for smaller scale projects.
It's a shame MCP didn't end up using a sandboxed shell (or something similar, maybe even simpler.) All the pre-MCP agents I built just talked to the shell directly since the models are already trained to do that.