Aider does all of this too, and it has for quite a while. It just tends to ask you for explicit permission when e.g. adding files to the context (potentially token-expensive), creating new files, or running commands (potentially dangerous); AFAIR there's an option (both configuration and cli arg) to auto-approve those requests, though I never tried it.
Aider has extensive code for computing "repository map", with specialized handling for many programming languages; that map is sent to LLM to give it an overview of the project structure and summary of files it might be interested in. It is indeed a very convenient feature.
I never tried writing and launching unit tests via Aider, but from what I remember from the docs, it should work out of the box too.
Thanks for sharing – I definitely want to plays with Aider more. My knowledge of it is limited, but IIRC Aider doesn't pull in the right files to create context for itself like Codebuff does when making updates to your codebase.
Another aspect is simplicity. I think Aider and other CLI tools tend to err towards the side of configuration and more options, and we've been very intentional with Codebuff to avoid that. Not everyone values this, surely, but our users really appreciate how simple Codebuff is in comparison.
Aider very much does pull in the right files to create context for itself. It also uses treesitter to build a repo-map and then uses that as an initial reference for everything, asking you to add the files it thinks it needs for the context. As of quite recently it also supports adding files for context in explicit read-only mode. It works extremely well.
Aider has extensive code for computing "repository map", with specialized handling for many programming languages; that map is sent to LLM to give it an overview of the project structure and summary of files it might be interested in. It is indeed a very convenient feature.
I never tried writing and launching unit tests via Aider, but from what I remember from the docs, it should work out of the box too.