{"id":47958358,"url":"https://github.com/bnjdpn/claude-profiles","last_synced_at":"2026-04-04T09:38:06.625Z","repository":{"id":337792487,"uuid":"1155232774","full_name":"bnjdpn/claude-profiles","owner":"bnjdpn","description":"Auto-configure Claude Code for any stack — detects your project, generates MCP servers, rules, skills, and CLAUDE.md in one command.","archived":false,"fork":false,"pushed_at":"2026-03-06T16:42:16.000Z","size":120,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-06T19:14:48.296Z","etag":null,"topics":["ai-coding","anthropic","claude","claude-code","cli","code-assistant","configuration","developer-tools","mcp","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bnjdpn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-11T09:25:01.000Z","updated_at":"2026-03-06T16:42:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/bnjdpn/claude-profiles","commit_stats":null,"previous_names":["bnjdpn/claude-profiles"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bnjdpn/claude-profiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bnjdpn%2Fclaude-profiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bnjdpn%2Fclaude-profiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bnjdpn%2Fclaude-profiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bnjdpn%2Fclaude-profiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bnjdpn","download_url":"https://codeload.github.com/bnjdpn/claude-profiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bnjdpn%2Fclaude-profiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31395300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T09:13:02.600Z","status":"ssl_error","status_checked_at":"2026-04-04T09:13:01.683Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-coding","anthropic","claude","claude-code","cli","code-assistant","configuration","developer-tools","mcp","python"],"created_at":"2026-04-04T09:38:06.139Z","updated_at":"2026-04-04T09:38:06.618Z","avatar_url":"https://github.com/bnjdpn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# claude-profiles\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n[![Python 3.10+](https://img.shields.io/badge/Python-3.10+-3776AB.svg)](https://www.python.org)\n[![Zero Dependencies](https://img.shields.io/badge/Dependencies-Zero-green.svg)](#)\n\n**One command to configure [Claude Code](https://docs.anthropic.com/en/docs/claude-code) for your entire stack.**\n\n`claude-profiles` auto-detects your project type and generates the full `.claude/` configuration — MCP servers, rules, skills, settings, and `CLAUDE.md` — so Claude Code understands your stack from the first prompt.\n\n## Features\n\n- **Auto-detection** — identifies your stack from project files (`pyproject.toml`, `*.xcodeproj`, `go.mod`, etc.)\n- **Variant-aware** — detects frameworks within stacks (Django vs FastAPI, SwiftUI vs UIKit, Maven vs Gradle) — each variant comes with its own framework-specific rules\n- **MCP servers** — pre-configures the right MCP servers for your stack (GitHub, Context7, Postgres, XcodeBuildMCP, etc.) — web framework variants auto-include Postgres\n- **Rules \u0026 skills** — generates contextual coding rules and scaffolding skills tailored to your language and framework (2+ rules and 2+ skills per profile)\n- **Formatter hooks** — auto-formats code on edit via hooks (Prettier, ruff, gofmt, rustfmt, mix format, rubocop, php-cs-fixer)\n- **Overlays** — layer additional config on top of any profile (e.g. `+healthkit` for iOS health apps)\n- **Sync** — re-apply your profile after upstream updates without losing local changes\n- **Customizable** — profiles are plain JSON files, easy to edit or create from scratch\n\n## Comparison\n\n| | `claude-profiles` | Manual config | Copy a CLAUDE.md template |\n|---|---|---|---|\n| Auto-detection | Detects stack + framework variant | — | — |\n| MCP servers | Pre-configured per stack | Set up each one manually | Not included |\n| Rules \u0026 skills | Generated per language/framework | Write from scratch | Generic, not stack-specific |\n| Formatter hooks | Auto-format on edit (Prettier, ruff, gofmt…) | Configure manually | Not included |\n| Sync \u0026 update | `sync` re-applies without losing local changes | Manual merge | Copy-paste again |\n| Setup time | ~5 seconds | 30+ minutes | 5 minutes + manual tweaks |\n\n## Supported Stacks\n\n| Profile | Variants | Hook | MCP |\n|---------|----------|------|-----|\n| Python | Django, FastAPI, Flask, Data Science | ruff format | GitHub, Context7, Postgres* |\n| TypeScript / React | Next.js, React, Vue, Svelte | Prettier | GitHub, Context7 |\n| TypeScript / Node | NestJS, Express, Fastify | Prettier | GitHub, Context7, Postgres* |\n| JavaScript / Node | Express, API, Next.js | Prettier | GitHub, Context7 |\n| Ruby | Rails, Sinatra, CLI | rubocop | GitHub, Context7, Postgres* |\n| PHP | Laravel, Symfony, WordPress | php-cs-fixer | GitHub, Context7, Postgres* |\n| Java | Maven, Gradle, Spring Boot, Quarkus | — | GitHub, Context7, Postgres* |\n| C# / .NET | ASP.NET, Blazor, MAUI, Console | — | GitHub, Context7, Postgres* |\n| Go | Gin, Echo, CLI | gofmt | GitHub, Context7 |\n| Rust | Axum, Actix, CLI | rustfmt | GitHub, Context7 |\n| Elixir | Phoenix, LiveView, CLI | mix format | GitHub, Context7, Postgres* |\n| iOS / Swift | SwiftUI, UIKit, SPM, CocoaPods, HealthKit, Widgets, Multiplatform | — | XcodeBuildMCP, GitHub, Context7 |\n| Kotlin Multiplatform | Compose Multiplatform, Shared Logic | — | GitHub, Context7 |\n| Flutter / Dart | Riverpod, BLoC, GetX | — | GitHub, Context7 |\n| Android | Compose, XML Views | — | GitHub, Context7 |\n| C / C++ | CMake, Make | — | GitHub, Context7 |\n\n\u003csub\u003e*Postgres MCP included for web framework variants (Django, FastAPI, Rails, Laravel, Symfony, NestJS, Spring Boot, Quarkus, ASP.NET, Phoenix, LiveView)\u003c/sub\u003e\n\n## Quick Start\n\n```bash\ngit clone https://github.com/bnjdpn/claude-profiles.git\ncd claude-profiles\nbash setup.sh\n```\n\nThen, in any project:\n\n```bash\ncd your-project/\nclaude-profiles apply auto\n```\n\nThat's it. Claude Code is now configured for your stack.\n\n## What Gets Generated\n\n### Python + FastAPI\n\n```bash\nclaude-profiles apply python --variant fastapi\n```\n\n```\nyour-project/\n├── .mcp.json\n└── .claude/\n    ├── CLAUDE.md\n    ├── CLAUDE.local.md\n    ├── settings.json\n    ├── rules/\n    │   ├── python-conventions.md\n    │   ├── testing.md\n    │   └── fastapi.md\n    └── skills/\n        ├── build-and-test/SKILL.md\n        └── create-module/SKILL.md\n```\n\n**`.mcp.json`** — GitHub, Context7, and Postgres pre-configured:\n```json\n{\n  \"mcpServers\": {\n    \"github\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-github\"],\n      \"env\": { \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${GITHUB_TOKEN}\" }\n    },\n    \"context7\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@upstash/context7-mcp@latest\"]\n    },\n    \"postgres\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-postgres\"],\n      \"env\": { \"DATABASE_URL\": \"${DATABASE_URL:-postgres://localhost/fastapi_dev}\" }\n    }\n  }\n}\n```\n\n**`.claude/CLAUDE.md`** — stack-aware instructions for Claude Code:\n```markdown\n# Projet Python\n\n## Stack\n- Language: Python 3.12+\n- Package manager: uv / pip / poetry\n\n## Commandes\n- Install: `pip install -e '.[dev]'` ou `uv sync`\n- Tests: `pytest`\n- Lint: `ruff check --fix .`\n- Format: `ruff format .`\n- Type check: `mypy .`\n\n## Framework: FastAPI\n- Dev: `uvicorn app.main:app --reload`\n- Docs: http://localhost:8000/docs (Swagger)\n- Tests: `pytest`\n- Async par défaut\n```\n\n### iOS / Swift\n\n```bash\nclaude-profiles apply ios-swift\n```\n\n```\nyour-project/\n├── .mcp.json\n└── .claude/\n    ├── CLAUDE.md\n    ├── CLAUDE.local.md\n    ├── settings.json\n    ├── rules/\n    │   ├── swift-conventions.md\n    │   └── project-structure.md\n    └── skills/\n        ├── build-and-test/SKILL.md\n        └── create-feature/SKILL.md\n```\n\n**`.mcp.json`** — XcodeBuildMCP for build/test/run, plus GitHub and Context7:\n```json\n{\n  \"mcpServers\": {\n    \"xcodebuild\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"xcodebuildmcp@latest\"]\n    },\n    \"github\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-github\"],\n      \"env\": { \"GITHUB_PERSONAL_ACCESS_TOKEN\": \"${GITHUB_TOKEN}\" }\n    },\n    \"context7\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@upstash/context7-mcp@latest\"]\n    }\n  }\n}\n```\n\n**`.claude/CLAUDE.md`** — iOS-specific commands and architecture:\n```markdown\n# Projet iOS / Swift\n\n## Stack\n- Language: Swift 5.9+\n- IDE: Xcode 15+\n- Deployment target: iOS 17+\n- Architecture: MVVM\n\n## Commandes\n- Build: `xcodebuild -scheme \u003cscheme\u003e build`\n- Tests: `xcodebuild test -scheme \u003cscheme\u003e -destination 'platform=iOS Simulator,name=iPhone 16'`\n- Format: `swift format --recursive .`\n```\n\n## Commands\n\n```bash\n# Detect your project's stack\nclaude-profiles detect\n\n# Apply the detected profile automatically\nclaude-profiles apply auto\n\n# Apply a specific profile with a variant\nclaude-profiles apply python --variant fastapi\n\n# Apply a profile with overlays\nclaude-profiles apply ios-swift +healthkit +widgets\n\n# Preview changes without writing anything\nclaude-profiles apply auto --dry-run\n\n# List available profiles\nclaude-profiles list\n\n# Show profile details\nclaude-profiles show python\n\n# Show overlay details\nclaude-profiles show +healthkit\n\n# Compare current config vs a profile\nclaude-profiles diff auto\n\n# Re-apply profile after upstream updates\nclaude-profiles sync\n\n# Force sync (overwrite local changes)\nclaude-profiles sync --force\n\n# Initialize user profiles directory\nclaude-profiles init\n\n# Create a new custom profile\nclaude-profiles create my-stack\n```\n\n## Overlays\n\nOverlays add configuration on top of any base profile. They're useful for cross-cutting concerns like HealthKit, Firebase, or CI pipelines.\n\n```bash\nclaude-profiles apply ios-swift +healthkit\n```\n\nThis merges the `healthkit` overlay into the `ios-swift` profile — adding HealthKit-specific rules, skills, and CLAUDE.md instructions alongside the base iOS configuration.\n\nOverlays live in `~/.claude-profiles/overlays/` and use the same JSON format as profiles.\n\n## Customization\n\n### Local instructions\n\nWhen a profile is applied, a `.claude/CLAUDE.local.md` file is created if it doesn't exist. This is where you add project-specific instructions — it's included via `@CLAUDE.local.md` at the end of the generated `CLAUDE.md` and is never overwritten by `apply` or `sync`.\n\nThis file is git-ignored, so each developer can have their own instructions.\n\n### Custom profiles\n\nProfiles are JSON files in `~/.claude-profiles/`. Run `claude-profiles init` to copy all built-in profiles there, then edit or create new ones.\n\n```bash\n# Create a new profile from scratch\nclaude-profiles create my-stack\n\n# Or copy and modify an existing one\ncp ~/.claude-profiles/python.json ~/.claude-profiles/my-python.json\n```\n\nUser profiles in `~/.claude-profiles/` take precedence over built-in ones.\n\n## How It Works\n\n`claude-profiles` scans your project directory for marker files (`pyproject.toml`, `Package.swift`, `go.mod`, `pom.xml`, etc.) using an ordered detection list — most specific patterns match first. Once the stack is identified, it optionally detects the framework variant by inspecting dependency files. The matched profile JSON is loaded, merged with any requested overlays, and written to your project's `.claude/` directory and `.mcp.json`.\n\nNo network calls, no package installation, no magic. Just file generation from JSON templates.\n\n## Requirements\n\nPython 3.10+, standard library only. Zero external dependencies.\n\n## License\n\n[MIT](LICENSE)\n\n---\n\n\u003csub\u003eSee also: [Claude Code native profiles feature request (#7075)](https://github.com/anthropics/claude-code/issues/7075)\u003c/sub\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbnjdpn%2Fclaude-profiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbnjdpn%2Fclaude-profiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbnjdpn%2Fclaude-profiles/lists"}