Integrate claude code and codex cli as agentic coding tool#9355
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
Package ReviewChannel DiffRemoved (none), changed (none), added TermMate. Review for TermMate main-1043eaf-2026.04.09.04.31.02 |
|
I'll probably try to do a more thorough code review later, but here's some details at least: Small typo in your readme:
For any packages like this we always ask to make it crystal clear from the readme when, how, and what data might leave the user's system to be sent to the llm/agent/service. You probably want your ChatMD syntax to be hidden, ie. only automatically assigned for your package's features and not selectable by users. You probably want to have specific keybindings for each OS, as in Win/Linux you'd want to bind CTRL+Enter instead, and on macOS CMND+Enter. |
This comment was marked as outdated.
This comment was marked as outdated.
|
Now the keybindings include Default.sublime-keymap for Windows/Linux and Default (OSX).sublime-keymap for mac. |
|
This PR adds TermMate. Review for TermMate main-09b61c0-2026.05.06.12.08.35Repository: https://github.com/flashmodel/termmate |
|
@kaste seems you enjoy reviewing these kinds of packages, wanna have a look? 🙂 Nothing really jumps out at me. Just an extremely minor nitpick: you typically don't need a separator if there are just 2 items in a submenu, example: Any interest in supporting other services? Let's say someone wants to introduce support for the tool they like to use, could you give some guidance on how to contribute that? |
|
Yeah, sorry. This all looks good but the architecture/file layout isn't quite there. You define multiple python files at the root. Each python file at the root is observed by ST for changes and is called a plugin. It is allowed to have multiple plugins in a package, as entry points, but you must not import them from each other. E.g. is not allowed. All modules/files you import must come from a subdir because we cannot guarantee that all plugins are atomically on the same version/revision (at reload/import time). That is why you often see a single entrypoint (https://github.com/kaste/KissReloader) That's a bit of a stupid work that copy pasting but hopefully not that complicated. EDIT: Otherwise LGTM! |
|
The core sublime command files have been moved into a dedicated chatview sub-dir |
|
Don't forget to tag your latest work! |
|
New tag now support latest package layout. |

My package is agentic coding tool named TermMate, bringing claude code and codex cli directly into ST.
The entire agent workflow is driven by the Command Palette. The package create a chat view that directly uses native ST Edit view to create a seamless agent chat and command palette experience. It built a clean, generic abstraction layer genfoundry which take a conversational, long-running agent cli(codex, claude) process. It may support more agent cli tool in the future.
The plugin add context menu of Chat with TermMate which can send current context(file name, lines) to chat. Much like vscode copilot, the solution is far more easy to use.
There are similar packages Codex in Package Control. The main difference is that TermMate provides a native, universal multi-agent Interface. This package uses a standard Sublime Text edit tab (ChatView), allowing you to use all native editor features. It's designed to orchestrate multiple agent CLI.
This package may implement most of the features of vscode Agent HQ in the future.