I asked Claude why i ran out of credits. Here’s the answer:
This session was genuinely heavy on usage, and I can point to the specific things that drove it:
1. Viewport screenshots (get_viewport_image)
Each call returned a full-resolution image (I called this repeatedly — after the spire, after the diagrid, after each fillet edit, plus a couple of failed selection-check attempts). Images are token-expensive to process compared to text, and I generated several of them.
2. Long, iterative debugging cycles
The two “increase fillet radius” tasks in particular took many run_python round-trips because I was probing the brep’s actual topology live (finding edges, checking adjacent faces, measuring curvature, retrying failed approaches) rather than getting it right in one shot. Each of those calls plus its full stdout/error output adds to the conversation’s token count, and every subsequent turn re-sends the growing conversation history.
3. Large tool outputs
Some scripts printed full edge/face dumps (e.g., the 29-edge listing after the first boolean union attempt) — verbose output that then sits in context for the rest of the session.
4. Selection-sync troubleshooting
The back-and-forth where I couldn’t detect your face selection involved several get_context and run_python calls that ultimately came up empty — wasted overhead.
5. Conversation length compounding
As the transcript summary at the top of this conversation shows, it was already compacted once — meaning the raw history was long enough that Anthropic’s system had to summarize earlier turns just to keep going. Every new message in a long conversation re-processes that accumulated context, so cost per turn creeps up over time even for short questions.
If you want to avoid this going forward: starting a fresh conversation per distinct task (e.g., one for the diagrid, a new one for fillet edits) keeps each session’s context smaller, and asking me to skip the viewport screenshot when you don’t need visual confirmation cuts a meaningful chunk of image tokens.