{"id":50747160,"url":"https://github.com/illdynamics/jeanclaude","last_synced_at":"2026-06-10T22:02:05.399Z","repository":{"id":357405374,"uuid":"1236540621","full_name":"illdynamics/jeanclaude","owner":"illdynamics","description":"The Claude Code CLI tool, wired to Deepseek as the brain. Your favourite workflow up to 200x cheaper and fully functional!","archived":false,"fork":false,"pushed_at":"2026-05-12T17:06:04.000Z","size":643,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-12T17:39:17.121Z","etag":null,"topics":["agentic-ai","agentic-coding","ai-agents","ai-tools","claude-code","deepseek-v4"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/illdynamics.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-12T10:45:31.000Z","updated_at":"2026-05-12T17:09:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/illdynamics/jeanclaude","commit_stats":null,"previous_names":["illdynamics/jeanclaude"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/illdynamics/jeanclaude","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illdynamics%2Fjeanclaude","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illdynamics%2Fjeanclaude/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illdynamics%2Fjeanclaude/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illdynamics%2Fjeanclaude/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/illdynamics","download_url":"https://codeload.github.com/illdynamics/jeanclaude/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illdynamics%2Fjeanclaude/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34172196,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-10T02:00:07.152Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["agentic-ai","agentic-coding","ai-agents","ai-tools","claude-code","deepseek-v4"],"created_at":"2026-06-10T22:02:04.464Z","updated_at":"2026-06-10T22:02:05.393Z","avatar_url":"https://github.com/illdynamics.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JeanClaude\n\n**Production-grade Claude Code CLI drop-in replacement routing to DeepSeek V4 models.**\n\nRun `jeanclaude` instead of `claude-code`. Same flags, same interactive behavior, same tool calls.\nBut your prompts go to DeepSeek V4 models via your `DEEPSEEK_API_KEY` — no Anthropic account/API key needed.\n\n**Privacy-first by default.** JeanClaude disables Claude Code nonessential traffic, telemetry,\ndiagnostics, metrics, feature-flag fetching, feedback, surveys, error reporting, prompt history,\nsession persistence, personalization/memory, official marketplace auto-install, plugin auto-update,\nClaude.ai MCP servers, login/session usage, and all auto-update mechanisms for both Claude Code\nand JeanClaude. Model traffic is routed to DeepSeek only. Open Responses/web/document tools may\ncontact their configured providers only when explicitly enabled.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./jeanclaude.jpg\" alt=\"JeanClaude\" width=\"80%\"\u003e\n\u003c/p\u003e\n\nCurrent version: `0.2.3` (from [`VERSION`](./VERSION)).\n\nRelease notes: [`RELEASE-NOTES.md`](./RELEASE-NOTES.md)\n\n## Quickstart\n\n### Option 1: git clone (recommended)\n\n```bash\ngit clone https://github.com/illdynamics/jeanclaude.git\ncd jeanclaude\n./jeanclaude install\n```\n\n### Option 2: curl one-liner\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/illdynamics/jeanclaude/main/scripts/install.sh | bash\n```\n\nNote: The curl installer respects `JEANCLAUDE_DISABLE_UPDATES=1` and will refuse to resolve\nlatest versions when privacy lockdown is enabled.\n\n### Running JeanClaude\n\n```bash\n# Set your DeepSeek API key (required)\nexport DEEPSEEK_API_KEY=\"sk-your-deepseek-key\"\n\n# Run Claude Code via JeanClaude\njeanclaude -Y \"explain this repo\"\n\n# Print version\njeanclaude --version\n```\n\n## Privacy Lockdown (Enabled by Default)\n\nJeanClaude ships with a comprehensive privacy lockdown mode enabled by default.\n\n### What it does\n\nJeanClaude disables Claude Code nonessential traffic by default via documented environment\nvariables and managed settings. Model traffic is routed to DeepSeek. Open Responses/web/document\ntools may contact their configured providers only when explicitly enabled.\n\n- **Routes all model traffic only to DeepSeek** — never to Anthropic\n- **Disables Claude Code telemetry, diagnostics, metrics, feature-flag fetching**\n- **Disables feedback, surveys, error reporting, GrowthBook**\n- **Disables prompt history, session persistence, personalization/memory**\n- **Disables official marketplace auto-install, plugin auto-update**\n- **Disables Claude.ai MCP servers, login/session usage**\n- **Disables all auto-update mechanisms for Claude Code and JeanClaude**\n- **Strips all inherited Anthropic API keys, OAuth tokens, and session variables**\n- **Uses ephemeral home directories** — no persistent Claude state on disk\n- **Sets all OTEL exporters to \"none\"**\n- **Fails closed if ANTHROPIC_BASE_URL points to anthropic.com or claude.ai**\n\n### How to verify\n\n```bash\n# Check privacy status\njeanclaude doctor --privacy\n\n# Check environment\nenv | grep -E \"CLAUDE_CODE|DISABLE_|OTEL_|JEANCLAUDE_PRIVACY\"\n\n# Packet capture or proxy logs showing no anthropic.com/claude.ai egress\n# All traffic should go to api.deepseek.com or your configured gateway\n```\n\n### Important notes\n\n- **Anthropic account-level model improvement settings cannot be changed by repo code.**\n  If you use a consumer Claude/Claude Code account, disable Model Improvement in\n  Claude Privacy Settings at https://claude.ai/settings/privacy.\n- **Do not log into Claude Code** if you want zero Claude.ai account linkage.\n  JeanClaude strips OAuth tokens but the Claude Code binary itself may still\n  have account-level tracking. Use JeanClaude with DEEPSEEK_API_KEY only.\n- To disable privacy lockdown (NOT RECOMMENDED):\n  ```bash\n  export JEANCLAUDE_PRIVACY_LOCKDOWN=0\n  export JEANCLAUDE_INSECURE_DISABLE_PRIVACY_LOCKDOWN=1\n  ```\n\n## Architecture\n\n```\nClaude Code ──▶ DeepSeek Anthropic API (direct mode, default)\n       │\n       ├──▶ Gateway (127.0.0.1:8765, optional) ──▶ DeepSeek API\n       │\n       └──▶ MCP (jeanclaude-tools) ──▶ Open Responses ──▶ Brave / Unstructured\n```\n\n- **Direct mode (default):** Claude Code talks to `https://api.deepseek.com/anthropic` — no proxy, no middleware, no Docker required.\n- **Gateway modes (optional advanced):** Route through a local JeanClaude gateway for exact thinking policy enforcement and request observability.\n- **Tool path:** Claude Code's MCP client connects to the `jeanclaude-tools` stdio server, which calls Open Responses for web search, document retrieval, and response synthesis.\n- **Containerized:** Everything can run in Docker Compose with isolated services.\n\n## Model Profiles\n\nJeanClaude provides four curated **model profiles** that bundle a DeepSeek model with a thinking preset:\n\n| Profile | Model | Thinking | Best For |\n|---|---|---|---|\n| `v4-pro-thinking` | `deepseek-v4-pro` | enabled, `max` | Deep architecture review, complex debugging, hard reasoning |\n| `v4-pro` | `deepseek-v4-pro` | disabled | High-capability coding without thinking overhead |\n| `v4-flash-thinking` | `deepseek-v4-flash` | enabled, `high` | Cost-effective reasoning, mid-complexity analysis |\n| `v4-flash` | `deepseek-v4-flash` | disabled | Fast edits, simple fixes, interactive coding |\n\n**Default profile:** `v4-flash`\n\n```bash\n# Set default profile\nJEANCLAUDE_MODEL_PROFILE=v4-pro\n\n# Per-command override\njeanclaude --profile v4-flash -p \"quick fix\"\njeanclaude --profile v4-pro-thinking -p \"deep architecture review\"\n```\n\nSee [`docs/model-profiles.md`](./docs/model-profiles.md) for the full profile guide.\n\n## Execution Modes\n\nJeanClaude supports four execution modes. Direct mode is the default and simplest — no gateway, no Docker.\n\n| Mode | Gateway | Docker | Thinking Control |\n|---|---|---|---|\n| **Direct** (default) | No | No | Best-effort |\n| **Gateway Process** | Yes | No | Exact |\n| **Gateway Container** | Yes | Yes | Exact |\n| **Gateway External** | Yes | No | Exact |\n| **Auto** | Auto-detect | Maybe | Depends |\n\n### Direct Mode (Default)\n\nDirect mode does not require a local gateway. Claude Code connects to DeepSeek's API directly.\n\n```bash\njeanclaude -p \"explain this repo\"\n```\n\n### Gateway Modes (Optional Advanced)\n\nGateway modes are optional advanced modes. Use them when you need exact thinking policy enforcement or request observability.\n\n```bash\n# Gateway process mode (host-native, no Docker)\njeanclaude --jeanclaude-mode gateway --gateway-mode process -p \"policy-enforced task\"\n\n# Gateway container mode (Docker)\njeanclaude --jeanclaude-mode gateway --gateway-mode container -p \"dockerized\"\n\n# Auto mode (detects gateway, falls back to direct)\njeanclaude --jeanclaude-mode auto -p \"adapt to environment\"\n```\n\nSee [`docs/execution-modes.md`](./docs/execution-modes.md) for the full mode guide.\n\n## Configuration\n\nAll configuration is done through environment variables in `.env`.\n\n### Core\n\n| Variable | Default | Description |\n|---|---|---|\n| `DEEPSEEK_API_KEY` | *(required)* | DeepSeek API key for model calls |\n| `JEANCLAUDE_MODEL_PROFILE` | `v4-flash` | Model profile: `v4-pro-thinking`, `v4-pro`, `v4-flash-thinking`, `v4-flash` |\n| `JEANCLAUDE_MODE` | `direct` | Execution mode: `direct`, `gateway`, or `auto` |\n| `JEANCLAUDE_PRIVACY_LOCKDOWN` | `1` | Master privacy switch (enabled by default) |\n\n### Privacy Lockdown\n\n| Variable | Default | Description |\n|---|---|---|\n| `JEANCLAUDE_PRIVACY_LOCKDOWN` | `1` | Enable privacy lockdown mode |\n| `JEANCLAUDE_EPHEMERAL_HOME` | `1` | Use temp directories for each run |\n| `JEANCLAUDE_DISABLE_UPDATES` | `1` | Disable JeanClaude auto-updates |\n| `JEANCLAUDE_DISABLE_ANTHROPIC_EGRESS` | `1` | Block all Anthropic egress |\n| `JEANCLAUDE_DISABLE_GATEWAY_LOG_FILE` | `1` | Disable persistent gateway logs |\n| `JEANCLAUDE_GATEWAY_LOG_LEVEL` | `error` | Minimal logging in privacy lockdown |\n\nSee [`docs/configuration.md`](./docs/configuration.md) for the complete reference.\n\n## Docker\n\nJeanClaude can run in Docker Compose:\n\n- **`jeanclaude-runner`**: Claude Code with MCP tools and optional gateway\n- **`open-responses`**: Open Responses API sidecar\n- **`open-responses-integrations`**: Tool integrations service\n- **`open-responses-db`**: PostgreSQL/TimescaleDB for memory\n- **`open-responses-vectorizer-worker`**: Vector embedding worker\n- **`open-responses-migration`**: Database migrations\n\nIn privacy lockdown, the Docker image uses ephemeral tmpfs for HOME (no persistent\nClaude state), strips all Anthropic auth, and pins Claude Code to an exact version.\n\n```bash\n# Build all services\nmake build\n\n# Start the full stack\ndocker compose up -d\n\n# Run a command\ndocker compose run --rm jeanclaude-runner run \"explain this repo\"\n```\n\nSee [`docs/docker.md`](./docs/docker.md) for detailed Docker usage.\n\n## Security\n\nJeanClaude authenticates Claude Code only through `DEEPSEEK_API_KEY`. No Anthropic API key\nor Anthropic login flow is used. Parent Anthropic auth variables are stripped from the environment.\nClaude OAuth tokens are never passed to child processes. In privacy lockdown mode,\nANTHROPIC_BASE_URL is asserted to not point to anthropic.com or claude.ai.\n\nTo report a vulnerability, email the maintainers directly. Do not open a public issue.\nSee [`SECURITY.md`](./SECURITY.md) for the full security policy, dangerous mode risks,\nsecret redaction policy, gateway security, and supported versions.\n\n## License\n\nThis project is licensed under the MIT License. See the `LICENSE` file for details.\n\n---\n\n**JeanClaude** — Claude Code, powered by DeepSeek, extended with tools. Privacy-first by default.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filldynamics%2Fjeanclaude","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filldynamics%2Fjeanclaude","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filldynamics%2Fjeanclaude/lists"}