claude code
https://www.anthropic.com/claude-code
Unleash Claude’s raw power directly in your terminal. Search million-line codebases instantly. Turn hours-long workflows into a single command. Your tools. Your workflow. Your codebase, evolving at thought speed.
References
- 2025-04 - Reverse engineering Claude Code
- 2025-04-18 - Claude Code Best Practices
- 2025-06-03 - Claude Code analysis
- hesreallyhim/awesome-claude-code: A curated list of awesome commands, files, and workflows for Claude Code
- 2025-06-11 - How I Use Claude Code
- 2025-06-15 - How I bring the best of Claude Code
Experimentation
Some of my observation playing with claude code.
Good
- Slash commands are powerful shortcuts to execute repetitive instructions across projects.
- You can send instructions while claude code is “thinking”.
- There’s a native “plan” mode that can be used, like Aider’s architect mode.
- claude code is using an internal TODO list, so claude code automatically break down the task asked into multiple smaller tasks, i.e. no need for specific system/user prompt for this approach.
- VIM mode, although it can be improved with more VIM motions/features.
- claude code picks up the required context of the codebase by itself, even if the prompt is vague.
- We can run parallel claude code sessions, so we can get multiple versions of a solution, which is a great idea as LLM are non-deterministic by nature, so this helps us choose the best version the LLM produced.
- claude code is fast to produce code, compared to some other AI agents.
- claude code seems to work quite well on large codebase, like the monolith.
- claude code can execute multiple sub-agents in parallel, example of prompt to run in parallel:
### Step 1: Load and Parse Data Sources
1. Read `TODO.md` to get list of JIRA ticket IDs (format: P3C-XXXX)
2. Read and parse `2025-06-20-de-medical_rules.csv` to extract medical rule data
3. Map CSV rule data to corresponding JIRA tickets
### Step 2: Agent Coordination Strategy
Deploy maximum 5 parallel agents to process tickets efficiently:
**Agent Assignment Protocol:**
- Each agent processes one JIRA ticket ID
- No duplicate ticket processing between agents
- Each agent receives:
- JIRA ticket ID
- Corresponding medical rule data from CSV
- This formatting template
**Parallel Execution Rules:**
- Launch all agents simultaneously using Task tool
- Monitor completion status
- Ensure thread-safe processing (no conflicts)
Bad
- Cannot use symlink for the user slash commands and global CLAUDE.md… Which is not nice, if I want to store them in my dotfiles.
- I cannot open an editor from the input field. This limit when I want to create a complex prompt.
- Mitigate by creating a file with the desired prompt and have claude code read it, which is not a nice devex, especially if I want to paste some big error logs for example.
- I can’t seem to add custom system prompts.
- The documentation seems to be out-of-date, as the settings is located at
$HOME/.claude.json
, not in$HOME/.claude/settings.json
. - The internal TODO list cannot be shared between sessions.
- History is located in
$HOME/.claude.json
, but only the user prompts are displayed, not the LLM’s output. - The
--add-dir
flag when invoking CLI for specifying additional directories does not work well…
Tips
- I find using this Memory MCP server with this prompt works quite well.
- I first ask Claude to explore the project (e.g. “Explore the @engines/online_identity then store into your memory”), then I begin my “real” prompt.
- It finds the files quicker and that saves some tokens (and money) since the memory is stored locally and the search does not use the LLM.
- In MacOS, paste image from clipboard with
Ctrl-v
, notCmd-v
.