Overview
The hub runs each tool from a folder. An entry in config.json can point a tool at your own folder, so you can change a tool and keep the hub as it is. There are three ways to do it, from the smallest change to the largest:
- A patch changes a few lines in the published package.
- A fork changes any part of the tool’s source.
- A new app changes nothing in the existing tools.
Start with a patch. When the patch gets large or breaks on each upgrade, go to a fork. When the tool you want does a different job, write a new app.
Point the hub at your folder
Section titled “Point the hub at your folder”Each way ends with an entry in the apps list of config.json:
{ "apps": [ { "id": "kanban-patched", "path": "C:/dev/kanban-patched" }, { "id": "kanban", "enabled": false } ]}pathis the folder of your tool. It can be any folder on the machine. A relativepathstarts from the folder ofconfig.json. The hub does not expand~, so write the full path.idmust be the same as theidin the folder’shub-app.json.- To replace a built-in tool, use its id, for example
kanban. To run your tool next to the original, give it a new id.
Restart the hub after you edit the file. See The config file for the other keys.
One tool per capability
Section titled “One tool per capability”Only one tool gets the embedded terminal and the project list: the first enabled tool in tab order that declares it in provides. If your tool and the original both declare them, the hub logs a message at startup. Turn one off, or put the one you want first.
Alt+1 to Alt+9 follow the tab order, so the tool you put first is also Alt+1.
Reference
Section titled “Reference”- The apps entry and the launch
- The app manifest
- The SDK
- Connect to other tools
- The built-in tools
- Hub protocol v1, the full contract
Examples
Section titled “Examples”- Compact session rows: a patch that changes the Kanban session list to two-line rows.
- Task board: a fork that keeps the Kanban server and replaces its page with a new board.
- Inspector: a new app that shows the turns, tool calls and token use of one session.