How to set up Claude Code tools

Issue #1033

Claude Code is Anthropic’s CLI for coding with AI. Getting a good setup makes a real difference — the right terminal, hooks for awareness, and the right tools to keep Claude running until the job is done.

Terminal

Ghostty is a fast, native terminal that feels good to use. Install it and make it your default.

For pane splitting and session management, Zellij lets you split the terminal into panes, keep sessions alive, and work across multiple Claude Code sessions side by side.

Install Claude Code

Follow https://code.claude.com/docs/en/quickstart

curl -fsSL https://claude.ai/install.sh | bash

Run claude in any project directory to start.

Configure Claude Code session

Once inside a session, two built-in slash commands set things up:

  • /terminal-setup — configures your terminal integration
  • /status-line — adds a status indicator so you can see what Claude is doing at a glance

Run these once. They write to your Claude settings and stick across sessions.

Hooks

Hooks are shell commands that fire at key moments in a Claude session. The two most useful ones are:

  • Stop — fires when Claude finishes a response
  • Notification — fires when Claude needs your attention

Add them to ~/.claude/settings.json. On macOS, afplay plays system sounds, so you can hear when Claude is done without watching the screen:

{
  "hooks": {
    "Stop": [{ "command": "afplay /System/Library/Sounds/Hero.aiff" }],
    "Notification": [{ "command": "afplay /System/Library/Sounds/Submarine.aiff" }]
  }
}

Skills

skills.sh is a directory of installable skills — reusable capabilities you add to Claude Code with a single command. Browse by category or search for what you need.

Install a skill like this:

npx skills add <owner/repo>

Inside Claude Code, you can also run /find-skills to discover what’s available without leaving the session.

Prefer the CLI

Where possible, use CLI tools instead of GUIs. They work better with Claude and keep everything in the terminal.

GitHub CLI is a good example. It handles PRs, issues, and repo actions directly from the terminal. Run gh auth login to authenticate, and Claude can use gh commands on your behalf without needing browser access.

Task Management

For tracking work across sessions, two CLI-native options work well with Claude Code.

Beads (bd) is a lightweight task manager built for quick use in the terminal.

Nod stores each task as a .md file inside .nod/tasks/, making it git-friendly and easy for Claude to read and update.

Both tools give Claude structured context about what still needs to be done.

Persistent Memory

Claude starts each session without memory of the last one. For simple cases that’s fine, but on larger projects you spend real time re-explaining context that Claude already had.

claude-mem solves this by recording what Claude does during a session and making that history searchable in future ones.

Once installed, claude-mem hooks into five session lifecycle events — SessionStart, UserPromptSubmit, PostToolUse, Stop, and SessionEnd. You don’t configure anything manually; it runs quietly in the background.

A web viewer at localhost:37777 shows the live memory stream if you want to inspect what’s being captured. For anything sensitive, wrap it in <private> tags and claude-mem will exclude it from storage.

Run Until Truly Done

By default, Claude stops and waits after each response. For larger tasks, you want it to keep going until the work is actually complete.

cmon is a Claude Code plugin that loops automatically. Start a task with:

/cmon TASK

Claude will iterate, writing progress to .cmon-progress.md, until it outputs <done/>

ralph-loop is an alternative with a slightly different approach — it uses a Stop hook to re-feed the same prompt each time Claude tries to exit.

Written by

I’m open source contributor, writer, speaker and product maker.

Start the conversation