A collection of notebooks/recipes showcasing some fun and effective ways of using Claude.
# Claude Cookbooks
A collection of Jupyter notebooks and Python examples for building with the Claude API.
## Quick Start
```bash
# Install dependencies
uv sync --all-extras
# Install pre-commit hooks
uv run pre-commit install
# Set up API key
cp .env.example .env
# Edit .env and add your ANTHROPIC_API_KEY
```
## Development Commands
```bash
make format # Format code with ruff
make lint # Run linting
make check # Run format-check + lint
make fix # Auto-fix issues + format
make test # Run pytest
```
Or directly with uv:
```bash
uv run ruff format . # Format
uv run ruff check . # Lint
uv run ruff check --fix . # Auto-fix
uv run pre-commit run --all-files
```
## Code Style
- **Line length:** 100 characters
- **Quotes:** Double quotes
- **Formatter:** Ruff
Notebooks have relaxed rules for mid-file imports (E402), redefinitions (F811), and variable naming (N803, N806).
## Git Workflow
**Branch naming:** `<username>/<feature-description>`
**Commit format (conventional commits):**
```
feat(scope): add new feature
fix(scope): fix bug
docs(scope): update documentation
style: lint/format
```
## Key Rules
1. **API Keys:** Never commit `.env` files. Use `dotenv.load_dotenv()` then access keys via `os.environ` or `os.getenv()`
2. **Dependencies:** Use `uv add <package>` or `uv add --dev <package>`. Never edit pyproject.toml directly.
3. **Models:** Use current Claude models. Check docs.anthropic.com for latest versions.
- Sonnet: `claude-sonnet-5`
- Haiku: `claude-haiku-4-5`
- Opus: `claude-opus-4-8`
- **Never use dated model IDs** (e.g., `claude-sonnet-4-6-20250514`). Always use the non-dated alias.
- **Bedrock model IDs** follow a different format. Use the base Bedrock model ID from the docs:
- Opus 4.6: `anthropic.claude-opus-4-6-v1`
- Sonnet 4.5: `anthropic.claude-sonnet-4-5-20250929-v1:0`
- Haiku 4.5: `anthropic.claude-haiku-4-5-20251001-v1:0`
- Prepend `global.` for global endpoints (recommended): `global.anthropic.claude-opus-4-6-v1`
- Note: Bedrock models before Opus 4.6 require dated IDs in their Bedrock model ID.
4. **Notebooks:**
- Keep outputs in notebooks (intentional for demonstration)
- One concept per notebook
- Test that notebooks run top-to-bottom without errors
5. **Quality checks:** Run `make check` before committing. Pre-commit hooks validate formatting and notebook structure.
## Slash Commands
These commands are available in Claude Code and CI:
- `/notebook-review` - Review notebook quality
- `/model-check` - Validate Claude model references
- `/link-review` - Check links in changed files
## Project Structure
```
capabilities/ # Core Claude capabilities (RAG, classification, etc.)
evals/ # Model evaluation patterns and benchmarks
skills/ # Advanced skill-based notebooks
tool_use/ # Tool use and integration patterns
multimodal/ # Vision and image processing
misc/ # Batch processing, caching, utilities
third_party/ # Pinecone, Voyage, Wikipedia integrations
extended_thinking/ # Extended reasoning patterns
scripts/ # Validation scripts
.claude/ # Claude Code commands and skills
```
## Adding a New Cookbook
1. Create notebook in the appropriate directory
2. Add entry to `registry.yaml` with title, description, path, authors, categories
3. Add author info to `authors.yaml` if new contributor
4. Run quality checks and submit PR