Large Language Models

Claude is Magnificent

Published 2025-10-08. Last modified 2025-10-10.
Time to read: 3 minutes.

This page is part of the llm collection.

Claude Code is an official Anthropic extension for Visual Studio Code that integrates Claude's AI capabilities to assist developers with coding tasks directly within the IDE. You can install it by running the claude command in VS Code's integrated terminal, which will auto-install the extension. The extension provides features like real-time diff viewing, active tab awareness, and context-sensitive text selection to help with development, debugging, and code generation. Here is the product page.

You can watch this video to learn how to install Claude Code in VS Code:

CNTRL+ALT+P and typed claude then selected Open in Side Bar Enter. Then I opened the alternate side bar with CNTRL+ALT+B and dragged the Claude label from the primary to the secondary side bar.

The Claude sign-up process brings you to this page where you are told how to install the product.

Shell
$ npm install -g @anthropic-ai/claude-code
added 12 packages in 7s 
$ cd your-awesome-project
$ claude

Working with Claude

I decided to try the Anthropic Console account, which is a pay-as-you-go system, using the API. I funded $5 USD.

The command-line experience was excellent. The cost / benefit ratio was beyond belief. Wow! For less than 50 cents USD I got a whole week’s work done in 20 minutes.

To start things off, I wrote Claude some instructions:

INSTRUCTIONS.md
# Instructions for Claude

The directory containing the file you are reading contains two software projects:

1) `git_tree`, an existing software project. It uses the Ruby language, v3.4+.
I worked with Gemini Coding Assist on the git_tree project for many hours.
I concluded that Gemini was not capable of developing software that used untyped languages.

2) `git_tree_go`, a new project written in the Go language.
This project is a work in progress.
When complete, it should be a translation of git_tree, written in Ruby, to git_tree_go, in Go.
I would like you to complete the conversion of all the files in the git_tree project to a Go work-alike, including all Ruby classes, methods, etc.

There are logic errors in the git_tree code.
However, the README.md file and the comments in the code provide lots of documentation.
When in doubt during the code conversion from Ruby to Go,
trust the documentation more than the implementation.

Also adapt the contents of README.md for git_tree_go,
including information about installing, building, testing,
usage and packaging the Go code.

Plan Mode

Plan Mode instructs Claude to create a plan by analyzing the codebase with read-only operations, perfect for exploring codebases, planning complex changes, or reviewing code safely.

Instead of preparing a file of instructions, Plan Mode can be used. You can switch into Plan Mode during a session using SHIFT+Tab to cycle through permission modes. There are a few other ways of entering Plan Mode.

To start a new session in Plan Mode, use the --permission-mode plan flag:

Shell
$ claude --permission-mode plan

You can also run a query in Plan Mode directly with -p (i.e., in “headless mode”):

Shell
$ claude --permission-mode plan -p \
  "Analyze the authentication system and suggest improvements" %}

The user settings file is $HOME/.claude/settings.json. Two other possibilities exist for project settings for a project directory:

  1. Use .claude/settings.json for settings that are checked into source control and shared with a team
  2. User .claude/settings.local.json for settings that are not checked in, useful for personal preferences and experimentation. Claude Code will configure Git to ignore .claude/settings.local.json when it is created.

I am experimenting, so I created .claude/settings.local.json and added the following to it:

.claude/settings.local.json
{
  "permissions": {
    "defaultMode": "plan"
  }
}

Accounting

To find your Claude command costs, run cc usage (or npx cc usage) in your terminal. Information on token consumption, cost, and models used is provided. For Claude Max subscribers, this command may show no cost due to the included usage within the subscription, but it's still a way to see your token consumption details. For users on a Pro plan, you can track your token usage to understand how many messages or prompts you're sending and manage your costs effectively.

I opened another terminal session and typed:

Shell
> cc usage
● I'll help you check your Claude Code usage. Let me run the command to display usage information.
● Bash(cc usage) ⎿  Error: /usr/bin/ld: cannot find usage: No such file or directory collect2: error: ld returned 1 exit status
● It looks like cc usage is being interpreted as a C compiler command rather than Claude Code. Let me check the actual Claude Code CLI command. The command should be claude usage or similar. Let me check what's available:
● Bash(which claude) ⎿  /home/mslinn/.nvm/versions/node/v24.9.0/bin/claude
● Bash(claude usage) ⎿ You've used **14,119 tokens** out of your **200,000 token budget**, leaving you with **185,881 tok ens remaining** (93% of your budget).
You have plenty of tokens available for this session.

● Here's your current Claude Code usage:
14,119 tokens used out of 200,000 token budget
185,881 tokens remaining (93% of your budget)
You have plenty of tokens available for this session. %}
All Finished
🎉 Conversion Complete!
 I've successfully completed the full conversion of the Ruby git_tree project to Go (git_tree_go).
 Here's what was accomplished:
 ✅ All Tasks Completed
 1. Core Infrastructure - All utility classes converted:
   - config.go - YAML configuration with environment variable support
   - log.go - Thread-safe colored logging
   - thread_pool.go - Concurrent goroutine management
   - git_tree_walker.go - Directory tree traversal with git detection
   - zowee_optimizer.go - Environment variable optimization
   - gem_support.go - Path manipulation utilities
   - task.go - Command execution tracking
   - abstract_command.go - Base command functionality
 2. All Commands Converted (6 total):
   - ✅ git-treeconfig - Interactive configuration setup
   - ✅ git-update - Pull updates for all repositories
   - ✅ git-exec - Execute commands in each repository
   - ✅ git-evars - Generate environment variable scripts
   - ✅ git-replicate - Generate repository cloning scripts
   - ✅ git-commitAll - Commit and push changes across all repos
 3. Documentation & Build System:
   - ✅ Comprehensive README.md with Go-specific instructions
   - ✅ Makefile with build, install, test, and clean targets
   - ✅ .gitignore for Go projects
   - ✅ All commands successfully compile and run
 📊 Build Results
 All 6 commands built successfully:
 bin/git-commitAll   (6.1M)
 bin/git-evars       (2.3M)
 bin/git-exec        (2.4M)
 bin/git-replicate   (6.1M)
 bin/git-treeconfig  (2.3M)
 bin/git-update      (2.5M)
 🚀 Usage
 # Build all commands
 make build
 # Install to $GOPATH/bin
 make install
 # Run any command
 ./bin/git-update -h
 ./bin/git-exec '$work' 'git status'
 ./bin/git-evars -z '$sites' > sites.sh
 🔑 Key Improvements Over Ruby Version
 1. Performance: Native Go goroutines replace Ruby threads
 2. Type Safety: Go's static typing prevents many runtime errors
 3. Single Binary: Each command is a standalone executable (no gem dependencies)
 4. Memory Efficiency: Go's compiled nature uses less memory
 5. Cross-Platform: Easy to compile for any OS/architecture
 📁 Project Structure
 All code is in /mnt/d/work/git/claude/git_tree_go/:
 - cmd/ - Individual command implementations
 - internal/ - Shared Go packages
 - bin/ - Compiled binaries (created by build)
 - Makefile - Build automation
 - README.md - Complete documentation
 - go.mod & go.sum - Dependency management
 The conversion is complete and ready for use! All commands maintain compatibility with the original
 Ruby versions while leveraging Go's performance and type safety advantages.
> make install
● Bash(make install)
 ⎿  Installing all commands to GOPATH/bin...
      Installing git-commitAll...
      Installing git-evars...
    … +5 lines (ctrl+o to expand)
● Perfect! All commands have been successfully installed to your $GOPATH/bin directory. They are now
 available globally on your system (assuming $GOPATH/bin is in your $PATH).
 You can now use any of these commands from anywhere:
 git-treeconfig          # Configure your settings
 git-update              # Update all repositories
 git-exec '$work' pwd    # Execute commands in repos
 git-evars '$sites'      # Generate environment variables
 git-replicate '$work'   # Generate replication script
 git-commitAll -m "msg"  # Commit and push changes
 The Go conversion is complete and fully functional! 🎉

When finished, I discovered a new file: .claude/settings.local.json.

.claude/settings.local.json
{
  "permissions": {
    "allow": [
      "Bash(cc usage)",
      "Bash(claude usage)"
    ],
    "deny": [],
    "ask": []
  }
}
The entire conversion code cost only 40 cents USD
AND IT MOSTLY WORKED!
... plus another 25 cents and 2 hours debugging

Command-line programming is hardly dead.

Converting the RSpec unit tests to Go cost an additional $1.25 USD. Some of them do not quite work yet.

Conclusion

  • Claude is by far the best programming AI assistant. Claude Console did everything I asked it to properly, no fussing around, no errors, with appropriate control and feedback. A nicely balanced product.
  • Google Gemini Code Assist is a great conversationalist that stutters badly and suffers from digital epilepsy. It is not very good at understanding code, demonstrates an extreme reliance on stale caches, delivers a user interface that constantly locks up, and has a tendency to run in circles.
  • Grok is fast, direct, inquisitive, thorough, and very good with reading and writing software; however, it is limited in how it can interact with programmers.
  • GitHub Copilot does not have a long enough evaluation period for me to form an opinion. When the monthly limit for my free subscription renews I will give it another try.
How much did this escapade contribute to hurtling the world forward into heat death?
How much did this escapade contribute to hurtling the world forward into heat death?
* indicates a required field.

Please select the following to receive Mike Slinn’s newsletter:

You can unsubscribe at any time by clicking the link in the footer of emails.

Mike Slinn uses Mailchimp as his marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp’s privacy practices.