Skip to content

Instantly share code, notes, and snippets.

@pythoninthegrass
Last active September 2, 2025 18:01
Show Gist options
  • Save pythoninthegrass/f4787f28d096c5c7702f5dc691a9d91f to your computer and use it in GitHub Desktop.
Save pythoninthegrass/f4787f28d096c5c7702f5dc691a9d91f to your computer and use it in GitHub Desktop.
Claude code / desktop settings
# BookStack API Configuration
BOOKSTACK_BASE_URL=
BOOKSTACK_API_TOKEN=
BOOKSTACK_TIMEOUT=30000
# Server Configuration
SERVER_NAME=bookstack-mcp-server
SERVER_VERSION=1.0.0
SERVER_PORT=3000
# Rate Limiting
RATE_LIMIT_REQUESTS_PER_MINUTE=60
RATE_LIMIT_BURST_LIMIT=10
# Validation
VALIDATION_ENABLED=true
VALIDATION_STRICT_MODE=false
# Logging
LOG_LEVEL=info
LOG_FORMAT=pretty
# Context7 Integration
CONTEXT7_ENABLED=false
CONTEXT7_LIBRARY_ID=/bookstack/bookstack
CONTEXT7_CACHE_TTL=3600
# Security
CORS_ENABLED=true
CORS_ORIGIN=*
HELMET_ENABLED=true
# Development
NODE_ENV=development
DEBUG=false

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with all of my code.

General

  • NEVER use emojis anywhere unless asked to
  • ALWAYS Use $(date) command for accurate date and time
  • IMPORTANT: You should NOT answer with unnecessary preamble or postamble (such as explaining your code or summarizing your action), unless the user asks you to.
    • Do not add additional code explanation summary unless requested by the user.
  • If you cannot or will not help the user with something, NEVER say why or what it could lead to, since this comes across as preachy and annoying.
  • VERY IMPORTANT: You MUST avoid using search commands like find and grep. Instead use Grep, Glob, or Task to search. You MUST avoid read tools like cat, head, tail, and ls, and use Read and LS to read files.\n - If you still need to run grep, STOP. ALWAYS USE ripgrep at rg first

Research

  • ALWAYS prefer the context7 mcp server when available.
  • IMPORTANT: You must NEVER generate or guess URLs for the user unless you are confident that the URLs are for helping the user with programming. You may use URLs provided by the user in their messages or local files.

Runtimes

  • ALWAYS use mise to handle programming runtimes (e.g., python, ruby, deno, act, etc.)
  • Discover runtimes via ~/.local/bin/mise which <RUNTIME>

Configuration Files

  • .editorconfig
    • There's a global ~/.editorconfig file that should be used for all projects.
    • If there's a project-specific .editorconfig file, ALWAYS used instead.
  • markdownlint
    • If present, ALWAYS use the .markdownlint.json or .markdownlint.jsonc file
    • To pass the config, use markdownlint -c <CONFIG> .

Linting

Python

# Run linter
ruff format --check --diff .

# Format code
ruff format .

Pending Tasks

  • TODO.md
    • This will be used to track all of the tasks that need to be completed.
    • Instead of writing todo items in the README.md file, ALWAYS use the TODO.md file.

Version Control

  • Summarize what has changes. Be concise but thorough. Avoid adjective and superlatives. Use imperative mood. Don't use emojis.

Context

  • Context7 mcp libraries
    • astral-sh/uv
    • astral-sh/ruff
    • taskfile_dev
{
"mcpServers": {
"context7": {
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp"
]
},
"kubernetes": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"$HOME/.kube:/home/appuser/.kube:ro",
"ghcr.io/alexei-led/k8s-mcp-server:latest"
]
},
"libvirt": {
"command": "$HOME/.local/bin/uv",
"args": [
"--directory",
"$HOME/git/libvirt-mcp",
"run",
"server.py"
],
"env": {
"UV_PROJECT_ENVIRONMENT": "$HOME/git/pymcpautogui/.venv"
}
},
"pyautogui": {
"command": "$HOME/.local/bin/uv",
"args": [
"--directory",
"$HOME/git/pymcpautogui",
"run",
"python",
"-m",
"pymcpautogui.server"
],
"env": {
"UV_PROJECT_ENVIRONMENT": "$HOME/git/pymcpautogui/.venv"
}
},
"serena": {
"command": "$HOME/.local/bin/uvx",
"args": [
"--from",
"git+https://github.com/oraios/serena",
"serena",
"start-mcp-server"
]
},
"mcp-installer": {
"command": "npx",
"args": [
"@anaisbetts/mcp-installer"
]
},
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest"
]
},
"pulumi": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"pulumi/mcp-server:latest",
"stdio"
]
},
"screencap": {
"command": "$HOME/.local/bin/uv",
"args": [
"--directory",
"/Users/lance/git/screencap",
"run",
"server.py"
]
},
"sequentialthinking": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"mcp/sequentialthinking"
]
},
"youtube": {
"command": "npx",
"args": [
"@anaisbetts/mcp-youtube"
]
}
}
}
{
"forceLoginMethod": "claudeai",
"enableAllProjectMcpServers": true,
"env": {
"DISABLE_TELEMETRY": "1",
"MCP_TIMEOUT": "60000"
},
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit|MultiEdit",
"hooks": [
{
"type": "command",
"command": "uvx ruff check --fix-only --respect-gitignore"
}
]
}
]
},
"permissions": {
"allow": [
"Bash(awk:*)",
"Bash(backlog:*)",
"Bash(chmod:*)",
"Bash(cp:*)",
"Bash(find:*)",
"Bash(grep:*)",
"Bash(ls:*)",
"Bash(mkdir:*)",
"Bash(mv:*)",
"Bash(pre-commit:*)",
"Bash(pytest:*)",
"Bash(python:*)",
"Bash(rg:*)",
"Bash(ruff:*)",
"Bash(screencap:*)",
"Bash(touch:*)",
"Bash(uv:*)",
"Edit",
"Edit(*)",
"mcp__context7__get-library-docs",
"mcp__context7__resolve-library-id",
"mcp__ide__getDiagnostics",
"mcp__serena__activate_project",
"mcp__serena__check_onboarding_performed",
"mcp__serena__find_symbol",
"mcp__serena__get_symbols_overview",
"mcp__serena__insert_after_symbol",
"mcp__serena__insert_before_symbol",
"mcp__serena__list_dir",
"mcp__serena__onboarding",
"mcp__serena__replace_symbol_body",
"mcp__serena__search_for_pattern",
"mcp__serena__think_about_collected_information",
"mcp__serena__think_about_whether_you_are_done",
"mcp__serena__write_memory",
"Read(/Users/*/Desktop/**)",
"WebFetch(domain:*.app)",
"WebFetch(domain:*.com)",
"WebFetch(domain:*.dev)",
"WebFetch(domain:*.edu)",
"WebFetch(domain:*.gov)",
"WebFetch(domain:*.io)",
"WebFetch(domain:*.net)",
"WebFetch(domain:*.org)",
"WebFetch(domain:*.us)",
"Write"
],
"deny": [],
"additionalDirectories": [
"~/git"
]
},
"statusLine": {
"type": "command",
"command": "~/.claude/cc-statusline-rs"
}
}
@pythoninthegrass
Copy link
Author

pythoninthegrass commented Jun 3, 2025

git clone [email protected]:f4787f28d096c5c7702f5dc691a9d91f.git claude_config && cd $_
mkdir -p ~/.claude
ln -s $(pwd)/settings.json ~/.claude/settings.json
ln -s $(pwd)/CLAUDE.md ~/.claude/CLAUDE.md
ln -s $(pwd)/claude_desktop_config.json ~/Library/Application\ Support/Claude/claude_desktop_config.json    # macos

@pythoninthegrass
Copy link
Author

Add claude code status line

git clone https://github.com/pythoninthegrass/cc-statusline-rs \
    && cd cc-statusline-rs \
    && make install

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment