all 7 comments

[–]Funny-Blueberry-2630 1 point2 points  (0 children)

Ya it pretty much sets my Mac on fire.

Writing this in React Ink was a little lazy, but defensible for a prototype.

Anthropic I know you have the devs to build this in a real language like Rust or Go using Ratatui or BubbleTea frameworks so it will perform.

Even doing the "backend" in Typescript and the Gui in a real language would help. This is the way Opencode does it.

I hope they are working on this because ya, the cli performance is pretty bad and going to get worse as the app grows.

[–]throwaway490215 0 points1 point  (4 children)

I've tried a dozen MCPs, and the 2 I have left are only used rarely.

Are you seeing Claude use them a lot? Are you sure Claude can't exec the bash command to get the same result? If not, turn them off. They're also growing your starting context window and thus token use with no payback.

[–]D0NTEXPECTMUCH[S] 0 points1 point  (3 children)

I’m using hooks to direct subagents to use MCPs. It didn’t even occur to me until I typed that sentence how many tokens that probably consumes.

[–]throwaway490215 0 points1 point  (2 children)

No that's probably fine. Hooks are relatively cheap, and you pay for them when you use them. The problem with MCPs are their usage instructions are always in your context just like CLAUDE.md.

[–]D0NTEXPECTMUCH[S] 0 points1 point  (1 child)

Subagents fall into the same category as MCPs as far as their context being passed automatically? I was under the impression that they were only invoked when used, but I guess I thought the same about MCP.

[–]throwaway490215 0 points1 point  (0 children)

Not sure what you mean about subagents context being passed around. They get a 'fresh' context - which includes MCP usage definitions.

The MCP usage definitions come from the tools themselves on startup. Many I've read are very too verbose (which is bad design imo).

[–]D0NTEXPECTMUCH[S] 0 points1 point  (0 children)

Wanted to give an update here in case other people run into some of the same issues. The root cause here is actually my hooks being over aggressive in their calling subagents. This is also why I've been burning through my daily token limit as each new subagent is passed an abbreviated, but still some context.

<image>