Claude Code Concepts: CLI, Hooks, Skills, and More

Noqta Team
By Noqta Team ·

Loading the Text to Speech Audio Player...

Overview

Claude Code consists of several components working together:

┌─────────────────────────────────────────┐
│              Claude Code                │
├─────────────────────────────────────────┤
│  CLI ──→ Main interface                 │
│  Hooks ──→ Behavior customization       │
│  Skills ──→ Extended capabilities       │
│  MCP ──→ Communication protocol         │
└─────────────────────────────────────────┘

1. CLI (Command Line Interface)

What Is It?

CLI is the primary way to interact with Claude Code via Terminal.

Basic Commands

# Start a new session
claude
 
# Start with a specific task
claude "Add authentication system"
 
# Resume a previous session
claude --resume
 
# Non-interactive mode (for scripts)
claude -p "Fix lint errors" --no-input

In-Session Commands

CommandFunction
/helpShow help
/clearClear context
/compactCompress conversation
/costShow current cost
/doctorCheck settings
/initCreate CLAUDE.md
/memoryManage memory
/modelChange model
/permissionsManage permissions
/statusSession status

Important Flags

# Specify model
claude --model claude-sonnet-4
 
# Enable deep thinking
claude --thinking
 
# Verbose mode
claude --verbose
 
# Specify working directory
claude --cwd /path/to/project

2. Hooks

What Are They?

Hooks let you execute custom code at specific points in Claude Code's workflow.

Hook Types

PreToolUse ──→ Before any tool use
PostToolUse ──→ After tool succeeds
Notification ──→ When notification arrives
Stop ──→ When task finishes

Example: Hook to Prevent File Deletion

// ~/.claude/settings.json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "bash",
        "command": "check-dangerous-commands.sh",
        "timeout": 5000
      }
    ]
  }
}
# check-dangerous-commands.sh
#!/bin/bash
if echo "$CLAUDE_TOOL_INPUT" | grep -q "rm -rf"; then
  echo '{"decision": "block", "reason": "Dangerous deletion blocked"}'
  exit 0
fi
echo '{"decision": "allow"}'

Hook Use Cases

Use CaseHook
Log commandsPostToolUse
Block dangerous commandsPreToolUse
Send notificationsNotification
Cleanup after completionStop

3. Skills

What Are They?

Skills are additional capabilities you add to Claude Code via SKILL.md files.

Skill Structure

skills/
└── my-skill/
    ├── SKILL.md      # AI instructions
    ├── scripts/      # Helper scripts
    └── templates/    # Templates

Example: API Helper Skill

# SKILL.md
---
name: api-helper
description: Helper for working with REST APIs
---
 
## When to Use
When the user requests creating or modifying API endpoints.
 
## Instructions
1. Use Express.js for backend
2. Add validation with Zod
3. Add unified error handling
4. Document endpoints in Swagger
 
## Templates
Use `scripts/create-endpoint.sh` to create new endpoints

Common Skills

SkillFunction
githubWork with GitHub CLI
dockerManage containers
testingWrite and run tests
deploymentDeploy applications
databaseDatabase management

4. MCP (Model Context Protocol)

What Is It?

MCP is an open protocol for connecting AI to external data sources and tools.

How It Works

┌──────────────┐     ┌─────────────┐     ┌──────────────┐
│ Claude Code  │────▶│ MCP Server  │────▶│ External API │
└──────────────┘     └─────────────┘     └──────────────┘

Setting Up MCP Server

// ~/.claude/settings.json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "ghp_xxx"
      }
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "postgresql://..."
      }
    }
  }
}

Available MCP Servers

  • GitHub: Manage repos, issues, PRs
  • Postgres/MySQL: Database queries
  • Slack: Send messages
  • Google Drive: Read/write files
  • Notion: Manage pages
  • And more...

5. CLAUDE.md

What Is It?

A file you place in your project root to help Claude Code understand project context.

Suggested Contents

# CLAUDE.md
 
## About the Project
E-commerce application with Next.js and Supabase.
 
## Technologies
- Next.js 14 (App Router)
- TypeScript
- Tailwind CSS
- Supabase (Auth + Database)
 
## Structure
- `app/` - Next.js pages
- `components/` - React components
- `lib/` - utilities
- `supabase/` - migrations
 
## Commands
- `npm run dev` - local development
- `npm run build` - production build
- `npm test` - run tests
 
## Code Rules
- Use TypeScript strict mode
- Each component in separate file
- CSS with Tailwind only

Putting It All Together

Claude Code
    │
    ├── CLI ────────────── User interface
    │
    ├── CLAUDE.md ──────── Project context
    │
    ├── Hooks ─────────── Behavior customization
    │   ├── PreToolUse
    │   ├── PostToolUse
    │   └── ...
    │
    ├── Skills ─────────── Extended capabilities
    │   ├── SKILL.md
    │   └── scripts/
    │
    └── MCP ────────────── External connections
        ├── GitHub
        ├── Database
        └── ...

What's Next?

In the next article, we'll cover:

  • Practical benefits of Claude Code
  • Real use cases
  • When to use it and when not to

Read Next: Claude Code Benefits and Use Cases


Want to read more blog posts? Check out our latest blog post on Can You Do Vibe Coding for Free?.

Discuss Your Project with Us

We're here to help with your web development needs. Schedule a call to discuss your project and how we can assist you.

Let's find the best solutions for your needs.