Claude Code has really taken off this summer. From 400,000 weekly downloads at the end of May, it has climbed to over 5 million downloads per week. Following Anthropic’s major announcements on September 29 (which even had us reworking this article at the last minute), it’s also clear there’s a growing push to use it beyond software development. We believe this is the perfect time to take a closer look at Claude Code.
Claude Code As a Tool for Assisting with Code Generation
As the name suggests, the primary purpose of Claude Code has been assisting with code generation. Unlike so-called “AI-first” development environments like Cursor AI or Windsurf, Claude operates primarily from the terminal. From a user experience perspective, however, it surprisingly falls behind its more robust counterparts in almost no way. Anthropic has taken full advantage of what the terminal offers, including features like quick file selection and even attaching screenshots.
With the September update of the VS Code extension, Claude Code also gained the option to appear in the native graphical interface of the popular editor. The terminal version, however, isn’t going anywhere. Its big advantage is that the choice of IDE remains entirely up to you. You don’t need to learn new keyboard shortcuts or spend time configuring unfamiliar editors just because one of them already implemented a feature your favorite one doesn’t have yet.
Claude Code As a Super-Intelligent UNIX Utility
Claude Code can also run in headless mode, which means you can use it programmatically as a standalone super-intelligent UNIX utility. You can integrate it into any applications, automation scripts, or CI/CD pipelines.
$ claude --prompt "What did I do this week?" \
--allowedTools Bash(git log:*) \
--output-format json
You can also install Claude Code anywhere you can run Node.js — even on a remote server via SSH access. An interesting use case could be continuous monitoring of error logs on a server, with Claude then sending you a summary in plain human language directly to your email.
$ cat app.log \
| claude --prompt "Anything interesting in logs from the past 24 hours?" \
--output-format json \
| jq -r '.result' \
| node send-email.js
Other possible uses include generating changelogs, transforming documents, extracting text from images, and more. The only limit is your imagination.
Claude Code As an AI Agent in the Truest Sense of the Word
Claude Code is an AI agent in the truest sense of the word (for curiosity’s sake, you can check out its evolving 1,150-line-long system prompt). Beyond generating code, you can use Claude Code for anything you could do yourself in the terminal — essentially controlling your entire computer. It can search and edit documents, configure and launch applications, read their outputs and generate visualizations, browse the internet for information, or even delegate tasks to additional autonomous sub-agents with their own assignments… all fully autonomous, based on your instructions and permissions.
Thanks to the set of universal tools available to Claude in the terminal, its possible use cases are truly broad. You can turn it into an assistant for working with legal documents, a personal finance advisor, a partner for research and data analysis, a companion for note-taking, a helper for generating social media content, a security auditor, and much more. And if you come up with something Claude can’t handle yet, you can either develop entirely new tools for it or take advantage of existing MCP services.
import { tool } from "@anthropic-ai/claude-agent-sdk";
import { z } from "zod";
export const sendEmailTool = tool(
"sendEmail",
"Send an email with given recipient, subject, and body text.",
{
to: z.string().email().describe("Recipient email address"),
subject: z.string().min(1).describe("Email subject"),
text: z.string().min(1).describe("Plain-text body of the email"),
},
async ({ to, subject, text }) => {
const result = await mockSendMail({ to, subject, text });
if (!result.ok) return { success: false, error: result.error };
return {
success: true,
messageId: result.id,
detail: `Email sent to ${to} with subject "${subject}"`,
};
},
);
Compared to services like ChatGPT, Claude Code has the advantage that it isn’t isolated within a chat thread — it has access to your entire computer, along with all the tools and data you choose to grant it. As Boris Cherny, one of the key minds behind Claude Code, says, even Anthropic itself doesn’t yet know all the ways people will end up using this tool. What they do know is that they want to avoid unnecessary limitations and make Claude Code as customizable as possible.
Check out what I created thanks to Vibe Coding.
Getting the Most Out of Claude Code
- Probably the most important positive effect comes from well-thought-out rules for the Claude agent in the
CLAUDE.mdfile. In these rules, you can include a brief description of the project, its structure and tech stack, past architectural decisions, general coding guidelines, or guidelines for using less common technologies (which Claude may not know as well as the most popular ones). - You can keep
CLAUDE.mdrules at different levels: 1) in the root folder of the project, if they’re relevant for the entire repository, 2) in various nested directories, if you need to specify rules for particular modules or applications in a monorepo, and 3) at the global level in~/.claude/CLAUDE.md, if you want to summarize your personal preferences across all projects. - If you have a challenging task for the Claude agent and want it to put in more effort, include the magic words
think,think hard,think harder, orultrathinkin your prompt (ranked by how much reasoning budget Claude allocates to them). - Don’t be afraid to interrupt Claude anytime you see it going off track, using the
Esckey. PressingEsctwice lets you step back in the conversation history. - Claude Code comes with a number of useful commands worth getting familiar with. For example,
/modelto switch between Sonnet and Opus models (in the Max version),/clearto clear history,/compactto slim down context with summarization,/resumeto continue older conversations,/rewindto return to a previous checkpoint, and more. - A fantastic feature is the ability to create custom commands for frequently repeated prompts. All you need is to create a markdown file, for example
./.claude/commands/commit.md. Then, by calling the/commitcommand, Claude will commit new changes with a description based on your instructions. - If Claude can’t keep up, you can fix that by spawning an entire army of Claude Code agents and delegating different tasks to different agents. To isolate environments and avoid code conflicts, you can use mechanisms like
git worktree.



