You can think of Aider as being a semi-auto LLM process. First you ask it to do something. It goes through a generate -> reflect -> refine loop until it feels like it has achieved the goal you give it. Aider has a reflection limit so it'll only do this loop a limited number of times and then it will add/remove the code that it deems fit. Then it'll give you instructions to run. You can run those instructions (e.g. to actually run a script) and then append the results from the run into the context to get it to fix any issues, but this is optional. What you send in the context and what you ask the models to do are in your hands. This makes iteration slower and the LLM does less but it also can potentially keep costs lower depending on what you delegate to the LLM and how often you iterate with it.
Claude Code, Codex, and I suspect Gemini CLI on the other hand will autonomously run your code then use the output to continue refining its approach autonomously until the goal is reached. This can consume many more tokens, potentially, than hand guiding Aider, because its potential for iteration is so much longer. But Claude Code and the like also need a lot less direction to make progress. You can, for example, ask it to do a big refactor and then just leave to lunch and come back to see if the refactor is done. Aider will require babying the whole way.