Back to blog

15 Claude Code Features You're Probably Not Using

| 9 min read

Boris Cherny, one of the engineers behind Claude Code at Anthropic, recently shared a list of features he considers hidden or underused. I went through all of them, tested a few, and was surprised how many I’d never tried. Some of these are genuine workflow changers.

Here’s my take on each one, with practical context on when they actually matter.

1. The Mobile App Has a Code Tab

Claude Code isn’t just a terminal tool. The Claude app on iOS and Android has a Code tab that gives you full Claude Code sessions from your phone. You can start a task on your laptop and pick it up from your couch.

This pairs well with Remote Control (more on that below). It’s not a gimmick. I’ve used it to approve permission prompts and check on long-running tasks when I’m away from my desk.

2. Teleport Sessions Between Devices

Start a session on the web at claude.ai, then pull it down to your local terminal with claude --teleport. Or use /teleport inside a running session to see all your active web sessions.

There’s one important catch: you can pull a web session down to your terminal, but you can’t push a local session up to the web. If you think you might want to move a session later, start it on the web first.

Before teleporting, Claude checks for clean git state, the correct repo, and branch availability. It’s not magic, but it works reliably when those conditions are met. The official docs cover the full details.

3. /loop and /schedule for Recurring Tasks

These are probably the most powerful features on this list, and I barely see anyone talk about them.

/loop 5m check if the deployment finished sets up a recurring task that runs every 5 minutes. It uses cron under the hood, so the minimum interval is one minute. Tasks auto-expire after 3 days, which is a nice safety net.

/schedule goes further. It creates cloud-based recurring jobs that keep running even after you close your laptop. Think daily code review summaries, deploy monitoring, or Slack digest generation.

A session can hold up to 50 scheduled tasks. Between /loop for short-lived monitoring and /schedule for persistent automation, there’s a lot of untapped potential here.

4. Hooks for Lifecycle Control

Hooks let you run shell commands at specific points in Claude’s lifecycle. The key events are:

  • SessionStart: set up your environment, check prerequisites, inject context
  • PreToolUse: inspect and block tool calls before they execute
  • PermissionRequest: auto-approve or auto-deny permission prompts programmatically
  • Stop: run cleanup when a session or subagent finishes

I wrote about using hooks for physical notifications with ESPTimeCast a few days ago. That used a Stop hook to trigger an LED notification when Claude finishes a task. But hooks go much deeper than that. You can auto-format code after every file write, enforce safety policies, or route permission decisions through custom logic.

As of March 2026, Claude Code supports 21 lifecycle events with 4 handler types. The hooks reference has the full list.

5. Cowork Dispatch from Your Phone

If you use Claude Desktop, Dispatch lets you message a task from the Claude mobile app and have it spawn a Desktop session to handle it. It’s remote control for Claude Desktop when you’re away from your computer.

The setup is straightforward: pair your mobile app with Desktop, then send tasks from your phone. Claude runs locally on your machine using your full environment, MCP servers, and project config.

6. Chrome Extension for Frontend Work

Boris calls this “the most important tip” for frontend development: give Claude a way to verify its output. The Chrome extension connects Claude Code to a real browser window so it can see what it built.

It works with Google Chrome and Microsoft Edge (beta). Claude can click, type, navigate, and screenshot. For frontend verification, this means Claude can build a UI, open it in the browser, check if it looks right, and fix issues without you doing anything.

You need Claude Code v2.0.73+ and the Chrome extension v1.0.36+. It’s more reliable than browser MCPs, according to Boris, because it uses the native extension API rather than going through a proxy.

7. Desktop App with Built-in Browser

The Claude Code Desktop app can auto-start web servers and test them with its built-in browser. If you’re doing frontend work and don’t want to set up the Chrome extension, this is the simpler path.

It’s especially useful for quick prototyping where you want Claude to spin up a dev server, make changes, and verify them visually in one flow.

8. Fork Sessions with /branch

Ever been deep in a Claude session and wanted to try a different approach without losing your current progress? Use claude --resume <session-id> --fork-session to create a branch of your conversation.

The fork gets its own session ID but starts with the full history of the original. The original stays untouched. It’s like git branching, but for your conversations.

9. /btw for Side Queries

This one is clever. While Claude is working on a task, type /btw followed by a question. It runs a side-chain query that sees your full conversation context but doesn’t interrupt the main task. The answer shows up in an overlay, and it doesn’t pollute your conversation history.

The /btw command is the inverse of a subagent: it sees everything Claude knows from the current session but has no tool access. Use it for quick “what was that variable name again?” questions while Claude is mid-refactor.

It reuses the parent conversation’s prompt cache, so the cost is minimal.

10. Git Worktrees for Parallel Work

Running multiple Claude sessions on the same repo causes conflicts. Git worktrees solve this. Use claude -w or check the worktree checkbox in Claude Desktop to give each session its own isolated copy of your repo.

Each worktree gets its own branch and working directory, so multiple Claudes can edit files in parallel without stepping on each other. This is what makes /batch possible (see below).

I covered skills for Claude Code before, and worktrees pair well with custom skills that dispatch parallel work.

11. /batch for Parallel Migrations

/batch is the big one. Describe a codebase-wide change, and Claude breaks it into units, spins up one agent per unit in isolated worktrees, and runs them all in parallel.

The flow has three phases. First, Claude launches Explore agents to research the codebase and decompose the work into 5-30 self-contained units. After you approve the plan, it launches one background agent per unit. Each agent gets worktree isolation, implements its changes, runs /simplify, executes tests, commits, pushes, and opens a PR.

You get a status table that updates as agents complete, showing PR URLs for each unit. Boris mentions results like “22/24 units landed as PRs” for large migrations.

12. —bare for Faster SDK Startup

If you’re using Claude Code programmatically (CI, scripts, SDK calls), add --bare to skip hooks, LSP, plugin sync, skill discovery, and auto-memory loading.

The speedup is about 14% to the first API request. More importantly, it gives you deterministic behavior. No teammate’s hooks or project MCP servers will interfere with your script. The --bare flag is expected to become the default for -p calls in a future release.

Requires ANTHROPIC_API_KEY or an apiKeyHelper via --settings, since OAuth and keychain auth are disabled in bare mode.

13. —add-dir for Multi-Repo Work

When working across multiple repositories, use --add-dir at startup or /add-dir during a session to give Claude access to additional folders. This grants both visibility and write permissions.

Terminal window
claude --add-dir ../backend-api --add-dir ../shared-lib

You can also add additionalDirectories to your team’s settings.json so extra folders load automatically for everyone. Since v2.1.20, Claude can even load CLAUDE.md files from additional directories when you set the CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD environment variable.

14. —agent for Custom Personas

Drop a .md file in .claude/agents/ with YAML frontmatter defining a role, and launch it with claude --agent <name>. Your entire session becomes that specialized agent, with its own system prompt, restricted tools, and model choice.

This isn’t a subagent. It replaces the default Claude Code system prompt entirely. Think of it as creating different “modes” for Claude: a security reviewer, a documentation writer, a migration specialist.

The subagents docs cover the full setup, including how to restrict which tools an agent can access.

15. /voice for Hands-Free Coding

Type /voice to toggle voice mode, then hold spacebar and speak. Claude transcribes your speech into the prompt input. You can mix voice and typing in the same message.

It works in the CLI (hold spacebar), Desktop (voice button), and iOS (enable dictation). As of March 2026, it supports 20 languages. The feature requires v2.1.69+ and a Claude.ai account, since it uses a streaming speech-to-text service that isn’t available with API keys or third-party providers.

The default push-to-talk key is spacebar, but you can rebind it to a modifier combination for faster activation.

What I’m Actually Using

Out of these 15, the ones that changed my daily workflow the most are hooks, /btw, and --add-dir. Hooks because I’ve built a whole notification system around them. /btw because it saves me from interrupting Claude constantly. And --add-dir because I work across multiple repos regularly.

/batch and /loop are the ones I want to invest more time in. The potential for automated migrations and recurring monitoring is huge, but they need more structured workflows to really shine.

Pick one or two from this list and try them this week. You don’t need all 15 at once. Start with whatever matches your biggest friction point.