Intro and Musings
Ok. Here we go. Let me start off as I usually do and reinforce that this is a complex subject and some details/nuance sf more than likely glossed over/missed. The point of these missives is never to be a definitive source, but an enthusiast's ramblings in an effort to educate, and selfishly force myself to slow down, research, and make sure I understand the subject as best I can. Now that I’ve totally projected my insecurities, let’s begin. ;)
Building The Foundation
The AI agent that’s my current go to for coding is Claude. This workflow can likely be used for any agent/service that supports coding but I’ll be focusing on Anthropic. You’re going to need to to pony up some cash to do this, let’s define some terms and make sure we’re making the right choices.
Claude has several primary features.
Chat - general purpose agent, can work with files that are uploaded but does not connect to local files on the workstation. Totally headless. The only option in the free tier. Not a lot of tokens to work with, times out quickly.
CoWork - “Agentic” chat. It can be scheduled, tasked, and run basic routines. E.G. “scan these services at a certain day/time and email me the results” kind of thing. It does way more, but we’re focusing on Code. Anthropic has recently moved the module into the chat modal as an inline tab.
Claude Design - Terrible at making power-point? Hate making diagrams? Need a web page? Design is for you. It does do a lot more, but out of scope for this.
Claude Code - Ok, here we go. Code can work with local files, it can connect to GitHub, and natively works with the git framework. It’ll show the PR you’re on, diff counts, etc. Nifty-schwifty.
Claude Code
Ok there are four basic ways to work with Code.
Web
There’s now a button the web to go to code on the web. I think we’ll focus on using this on our examples. When you start code on the web, it fires up a container, and then clones the repo to work on the files. Like chat, it does not interact with local file stores. We’ll dive into this more later.
Claude Desktop
A local install of the Claude “harness”. I think I’ll get into that in future AI 101 post. For now, it’s an application you install locally. It can work directly with local files, and (I just found this out) you can also start a session with a web container. Whether or not you can resume a Desktop Web session with Web Code seems to be a bit fuzzy, and I have not tested it. When using the local option all software must be installed for that environment to compile and test. If you don’t have something, it will tell you.
Claude CLI
This is a totally different install process than Claude Desktop, and to be honest, I kind of hate it. Skills import differently, it seems in my experience to use tokens/less efficiently than Desktop or Web, and I find the interface to be a pain. At this point it’s not for me and I won’t be covering it.
IDE Extensions
IDEs like VS Code and JetBrains can run Claude as an extension, but we won’t be getting into it.
Where’s My Money, Man?
Code, Cowork, Design. Really anything other than chat is going to require some sort of payment. There are two primary methods.
API Based
An API based account is going to consume tokens based on the model you use. It’s “pay as you go”. Let’s look at the Pros/Cons
Pros:
You can use any harness you want. Cursor, VS Code Agent, etc.
No interruptions, unless you run out of paid tokens. You can enable a faucet of cash straight to Anthropic to enable auto re-up if you want.
Direct API integration with other tooling.
Use a LLM Gateway like Open Router
Cons:
You have to be very mindful of what you’re using for a model and be aware of your running tasks. This can get expensive, quick.
More of a learning curve, not as simple as the “turnkey” solution the subscriptions are.
Let’s look at Open Router to see the costs. This is a third party “LLM Gateway” I’ve been using on the side. Primarily what we care about is the price per input/output tokens. Don’t get me wrong, it all counts but I feel that‘s a good baseline. Looks how much more expensive Opus is than Sonnet. I find Sonnet to be terrible at coding, so Opus is my standard.
Now this is still abstract, so let me put in a bit more perspective. KimiK3 is a Chinese model at half the cost and is supposed to be equal-ish to Opus. I bought 10 bucks of credit on Open Router, set up VS Code Agent, and took the ol’ girl for a spin.
My task was debugging a Home Assistant integration I worked up with Claude. It wasn’t that intensive a task in theory but I used 14 Million tokens and spent most of my 10 bucks to do it. Claude at the same price? Twice that.
Subscriptions
A flat rate regardless of what model you use (Fable is not available in the Pro subscription, you have to pay as you go) Has a rate limit based on token consumption in five hour sessions and consumption via a week timeframe. Higher model = faster session burn rate. If you hit your session limit you have to wait until it resets.
Pros:
Use almost any Anthropic model you want without added cost concerns.
Multiple plan options. We’ll focus on Pro.
Simple to use.
While there is no API for subscriptions, there are some IDE extensions you can use for applications like VS Code, JetBrains. Not the same as using one of those as the full harness.
Cons:
When you hit the session/week limit it’s a hard stop unless you enable a faucet of cash straight to Anthropic to enable usage credits if you want to continue the session.
No API at all. You’re locked in. You can have an API account under the same email, but they are structurally separate.
No other harness, it’s Claude applications only. This mean Claude Web, Desktop or CLI only. Remember the extensions mentioned in Pro are not full harnesses.
Higher model use can burn through sessions quickly based on the task.
What to do?
If you’re reading this you’re probably fairly new to this. I do not recommend API, go with the pro subscription. It’s 20 dollars a month. And the value is insane. I was looking at my past sessions and each one is almost 20 bucks a shot, bear in mind I was doing quite a bit in those sessions.
These plans are highly subsidized and a very affordable way to get your feet wet. Even the MAX at 100 a month is kind of amazing, when you understand the actual costs. I can’t imagine these prices will last forever.
Sign up, and go with Pro to start, that’s my recommendation. Now we need to talk a little bit of AI 101 for a base understanding of some concepts.
I Have No Memory Of This Place
Ok, so right off the bat know that the model is simply the inference engine. It has no memory, nothing installed. The model is locked into its learned state at the time of release, basically read only. It’s the harness (our Pro account use case Claude itself is the harness) that maintains state, tools, skills, memory. The conversation to the model must be stateful in order to get useful data out. Let me explain that in an easier to understand way.
Cool Operator
Let’s segue and talk about air conditioning. That’s right, AC. So I have these Mitsubishi Minisplits, and I was working on adding some automations to Home Assistant and my commands aren’t being received correctly when learning the IR codes. That’s when I find out that the system is stateless. It has no idea or ability to compare a difference in its established state.
So lets say I have the settings set to:
Swing: Full
Temperature: 70f
Fan: Medium
Mode: Cool
And I want to change the temperature to 71f. The remote only sends that change of 71f, right? Nope. It sends the full state of the remote at once. So that one button press sent:
Swing: Full
Temperature: 71f
Fan: Medium
Mode: Cool
That’s the new state of the unit. If I change the speed:
Swing: Full
Temperature: 71f
Fan: Low
Mode: Cool
Again, it sends way more information that what I’m changing on every press, overwriting the previous active state. Pretty damned inefficient, but SIMPLE. This is very close to what happens when you are using AI.
As The AI Turns
So back to the main subject, when you enter data into the field and hit enter, that’s a turn. Every turn is a state submission, and wholly new to the model on every go. So the token use becomes higher on every turn, outside of the amount of new submissions on a turn. Loaded skills, MCP connections, tools, the conversation from the top are sent to the model fresh every time. Let’s talk about some behaviors to assist on keeping our conversations as efficient as possible.
Don’t switch models in the same session unless at the beginning. That’s a lot of data to resend, kind of obviates the benefit.
If a conversation is getting long, ask for a hand off summary. It will summarize the entire conversation that you can paste into a new session. Great option to use if you need to switch a model because the scope of the task has changed. E.G., you coded with Opus but Sonnet can do the PR check and release notes. As it is a summary you may lose some resolution to the conversation, and it might re-review some sections to try and get that context back.
Be aware of your context window. In Pro, the context window is 200k. If you click on the little circle next to the model you can see the contents of the window. Once it hits 84% it will “compact” the conversation automatically which is basically an internal handoff. So if your session suddenly stops, look for some text that says “compacting conversation” and the it will give you some indications of how many tokens it “saved.” The resolution statement applies here as well. Compaction is important because with an AI when you go past the window shit gets…weird and from a hallucination standpoint kind of goes on a spiritual journey. Remember how you got on those 2AM change windows in person at a datacenter? Yea, not at your best. Same here.
Sounds Like a Skill Issue
So we’ve connected to our GitHub, we made a repo and we started to build an app. Only a strange thing is happening. It’s making changes, adding features after what only was supposed to be a discussion, making commits without asking, creating and merging PRs, dogs and cats, living together, MASS HYSTERIA! Now your repo is a mess, there’s no tags, no release notes, and you have to burn a bunch of tokens to fix it.
The thing is, it’s doing exactly what you asked of it and BY GOD IT’S GOING TO DO IT. You provided no instructions or guardrails.
Well this is where the concept of skills come in. A skill is simply a set of repeatable instructions that you want the session to abide by. I have spent the last three weeks learning and with Claude, refining my “dev skills” skill. And it is massive, so using it will cause more tokens to be used, but it’s optimized into a primary skill and reference skills that only load on a certain “gate”. We will use this skill for this series.
The .skill file can be downloaded from releases.
https://github.com/darthrater78/claude-vibe-skills
Quick Note: Claude Code and Desktop allow for upload of the.md files as .skill zips. So the zip on my GitHub will import fine. Other harnesses/Claude CLI are going to want it unzipped though most will do it for you if you upload it to the chat window and say “install this skill.”
NOTE: SKILLS CAN BE MALICIOUS LIKE ANY MALWARE AND CONTAIN DANGEROUS INSTRUCTIONS. NEVER INSTALL A 3RD PARTY SKILL YOU HAVE NOT AUDITED. THE SKILL ON MY GITHUB IS WELL DOCUMENTED AND FREELY OPEN TO AUDITING.
To install a skill in Claude Web go to Code, and Customize> Skills>Add>Upload.
After upload, you can see it in “Yours”.
If you then look at the skill further, you can see more details. I always version my code, so you can see what rev you are running. To update to a new version delete and re-upload. Skills also will copy down to Claude Desktop.
In theory installed skills are loaded in each chat, but I have found invoking it right away works best.
See that “updated dev-skills-gates” file? That tracks the state of the gates on the repo so the harness doesn’t have to remember it. Basically says nothing to do here, the previous release is solid. New feature in the skill.
This skill is designed to be a guide for development and focus on security, quality and process. We’ll get into this in Part 4.
Conclusion
So I really wanted to get into starting some app development in this post, but I realized there was just so much to cover, I could not fit it here. You should leave this post with a much firmer understanding of AI and Claude in general from a basic use case.
So in part 4, we make an APP!
Until next time.
















