These are the two categories most people actually use. They are more similar underneath than they look, and the difference that matters is not the one the marketing emphasises.
General assistants
A chat window over a general model, usually with some combination of file upload, web access, memory across conversations, and custom instructions.
Features worth using deliberately:
Custom instructions / system prompt. Standing context about who you are and how you want answers. Setting this once removes a paragraph of repetition from every conversation. Most people never open it.
File upload. Converts recall into reading. This is the highest-value feature in the category and the most under-used.
Memory across chats. Convenient, and worth auditing occasionally — it can carry a stale assumption from months ago into today's answer.
Projects or spaces. Grouping related conversations with shared context. Useful once you have a recurring topic.
Coding tools
Same models, usually. The difference is context and action: the tool can read your repository, propose edits in place, run commands, and see the result.
That changes the quality of suggestions substantially. A general assistant suggests how the function is usually written. A coding tool suggests how it should be written in your project, with your conventions, your types and your existing helpers.
What to expect honestly:
- Strong on boilerplate, tests, unfamiliar syntax, refactors with a clear shape, and explaining unfamiliar code
- Mixed on architectural decisions, where it will produce a confident answer to a question that has no single right answer
- Weak on anything requiring knowledge of why your system is the way it is — the constraint that lives in someone's head, not in the repository
The limit they share
Both work from a bounded context window. Neither holds your whole codebase or your whole document set in view at once — they retrieve pieces. This explains behaviour that otherwise looks like carelessness: a suggestion that contradicts a file it did not look at, or a summary that missed a section.
When output seems to ignore something obvious, the first question is whether it could see it.
Choosing between them
Use a general assistant when the work is thinking, drafting, explaining or planning. Use a coding tool when the work is in the codebase and the value comes from fitting what already exists.
Most developers want both, and use them for different halves of the same task.