Find a file
dependabot[bot] f29b88b094
Some checks are pending
Dependency Cache / Warm dependency cache (push) Waiting to run
build(deps): bump the minor-and-patch group across 1 directory with 5 updates (#1601)
Bumps the minor-and-patch group with 5 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [uvicorn](https://github.com/Kludex/uvicorn) | `0.52.3` | `0.52.4` |
| [openai](https://github.com/openai/openai-python) | `3.3.0` | `3.3.1`
|
| [transformers](https://github.com/huggingface/transformers) | `5.15.0`
| `5.15.1` |
| [ty](https://github.com/astral-sh/ty) | `0.0.72` | `0.0.74` |
| [ruff](https://github.com/astral-sh/ruff) | `0.16.3` | `0.16.4` |


Updates `uvicorn` from 0.52.3 to 0.52.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kludex/uvicorn/releases">uvicorn's
releases</a>.</em></p>
<blockquote>
<h2>Version 0.52.4</h2>
<h3>Fixed</h3>
<ul>
<li>Remove duplicate <code>Date</code> headers from accepted WebSocket
handshakes with <code>websockets-sansio</code> (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3078">#3078</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4">https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md">uvicorn's
changelog</a>.</em></p>
<blockquote>
<h2>0.52.4 (August 18, 2026)</h2>
<h3>Fixed</h3>
<ul>
<li>Remove duplicate <code>Date</code> headers from accepted WebSocket
handshakes with <code>websockets-sansio</code> (<a
href="https://redirect.github.com/Kludex/uvicorn/pull/3078">#3078</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="8988c23704"><code>8988c23</code></a>
Stabilize macOS Python 3.13 signal shutdown tests (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3084">#3084</a>)</li>
<li><a
href="898ddca925"><code>898ddca</code></a>
Update PyPI publish action to version 1.14.2 (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3083">#3083</a>)</li>
<li><a
href="3869f8aac2"><code>3869f8a</code></a>
Restore Mermaid diagram rendering (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3080">#3080</a>)</li>
<li><a
href="64148a9c57"><code>64148a9</code></a>
Version 0.52.4 (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3079">#3079</a>)</li>
<li><a
href="9e9e5691bd"><code>9e9e569</code></a>
docs: correct release example PR number (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3072">#3072</a>)</li>
<li><a
href="b783dacab5"><code>b783dac</code></a>
Remove duplicate Date header from SansIO WebSocket handshakes (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3078">#3078</a>)</li>
<li><a
href="27019b2a4b"><code>27019b2</code></a>
chore(deps): bump the python-packages group across 1 directory with 11
update...</li>
<li><a
href="1b6427311b"><code>1b64273</code></a>
Fix a typo in index.md (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/3006">#3006</a>)</li>
<li>See full diff in <a
href="https://github.com/Kludex/uvicorn/compare/0.52.3...0.52.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `openai` from 3.3.0 to 3.3.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-python/releases">openai's
releases</a>.</em></p>
<blockquote>
<h2>v3.3.1</h2>
<h2><a
href="https://github.com/openai/openai-python/compare/v3.3.0...v3.3.1">3.3.1</a>
(2026-08-19)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> update dependencies with published security
fixes (<a
href="https://redirect.github.com/openai/openai-python/issues/3680">#3680</a>)
(<a
href="53aa4fc68b">53aa4fc</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>build:</strong> migrate to uv (<a
href="https://redirect.github.com/openai/openai-python/issues/3653">#3653</a>)
(<a
href="b37e85d8fe">b37e85d</a>)</li>
<li><strong>deps:</strong> remove jsonschema and unused
fixture-validation dependencies (<a
href="0dfdfdddfb">0dfdfdd</a>)</li>
<li>lock the repository Pyright toolchain (<a
href="https://redirect.github.com/openai/openai-python/issues/3678">#3678</a>)
(<a
href="3079be224c">3079be2</a>)</li>
<li>run the mock server from locked local tooling (<a
href="https://redirect.github.com/openai/openai-python/issues/3679">#3679</a>)
(<a
href="370fcc60ce">370fcc6</a>)</li>
</ul>
<h3>Refactors</h3>
<ul>
<li><strong>deps:</strong> use the standard library for platform
detection (<a
href="d5b00659d6">d5b0065</a>)</li>
</ul>
<h3>Build System</h3>
<ul>
<li>replace the external README metadata hook (<a
href="e673ca8ff9">e673ca8</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-python/blob/main/CHANGELOG.md">openai's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/openai/openai-python/compare/v3.3.0...v3.3.1">3.3.1</a>
(2026-08-19)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><strong>deps:</strong> update dependencies with published security
fixes (<a
href="https://redirect.github.com/openai/openai-python/issues/3680">#3680</a>)
(<a
href="53aa4fc68b">53aa4fc</a>)</li>
</ul>
<h3>Chores</h3>
<ul>
<li><strong>build:</strong> migrate to uv (<a
href="https://redirect.github.com/openai/openai-python/issues/3653">#3653</a>)
(<a
href="b37e85d8fe">b37e85d</a>)</li>
<li><strong>deps:</strong> remove jsonschema and unused
fixture-validation dependencies (<a
href="0dfdfdddfb">0dfdfdd</a>)</li>
<li>lock the repository Pyright toolchain (<a
href="https://redirect.github.com/openai/openai-python/issues/3678">#3678</a>)
(<a
href="3079be224c">3079be2</a>)</li>
<li>run the mock server from locked local tooling (<a
href="https://redirect.github.com/openai/openai-python/issues/3679">#3679</a>)
(<a
href="370fcc60ce">370fcc6</a>)</li>
</ul>
<h3>Refactors</h3>
<ul>
<li><strong>deps:</strong> use the standard library for platform
detection (<a
href="d5b00659d6">d5b0065</a>)</li>
</ul>
<h3>Build System</h3>
<ul>
<li>replace the external README metadata hook (<a
href="e673ca8ff9">e673ca8</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="753ab5c1a8"><code>753ab5c</code></a>
release: 3.3.1 (<a
href="https://redirect.github.com/openai/openai-python/issues/3658">#3658</a>)</li>
<li><a
href="53aa4fc68b"><code>53aa4fc</code></a>
fix(deps): update dependencies with published security fixes (<a
href="https://redirect.github.com/openai/openai-python/issues/3680">#3680</a>)</li>
<li><a
href="370fcc60ce"><code>370fcc6</code></a>
chore: run the mock server from locked local tooling (<a
href="https://redirect.github.com/openai/openai-python/issues/3679">#3679</a>)</li>
<li><a
href="3079be224c"><code>3079be2</code></a>
chore: lock the repository Pyright toolchain (<a
href="https://redirect.github.com/openai/openai-python/issues/3678">#3678</a>)</li>
<li><a
href="b802648bc9"><code>b802648</code></a>
update vulnerable dependencies (<a
href="https://redirect.github.com/openai/openai-python/issues/3676">#3676</a>)</li>
<li><a
href="8995963f95"><code>8995963</code></a>
add script dependency cooldown (<a
href="https://redirect.github.com/openai/openai-python/issues/3675">#3675</a>)</li>
<li><a
href="8174e247db"><code>8174e24</code></a>
disable checkout credential persistence (<a
href="https://redirect.github.com/openai/openai-python/issues/3674">#3674</a>)</li>
<li><a
href="d5b00659d6"><code>d5b0065</code></a>
[3/n] Use the standard library for platform headers (<a
href="https://redirect.github.com/openai/openai-python/issues/3656">#3656</a>)</li>
<li><a
href="e673ca8ff9"><code>e673ca8</code></a>
[2/n] Keep the package README hook in the repository (<a
href="https://redirect.github.com/openai/openai-python/issues/3655">#3655</a>)</li>
<li><a
href="0dfdfdddfb"><code>0dfdfdd</code></a>
[1/n] Reduce the Bedrock fixture validation dependencies (<a
href="https://redirect.github.com/openai/openai-python/issues/3654">#3654</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/openai/openai-python/compare/v3.3.0...v3.3.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `transformers` from 5.15.0 to 5.15.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/huggingface/transformers/releases">transformers's
releases</a>.</em></p>
<blockquote>
<h2>Patch release: v5.15.1</h2>
<h1>Patch release v5.15.1</h1>
<p>This patch most notably solves a few issues with DFlash and MTP
candidate generators, as well as an issue where images could sometimes
not be processed on accelerator if using Lanczos filter.</p>
<p>It contains the following commits:</p>
<ul>
<li>Fix DFlash candidate token device mismatch with
device_map=&quot;auto&quot; (<a
href="https://redirect.github.com/huggingface/transformers/issues/47877">#47877</a>)
by <a href="https://github.com/sywangyi"><code>@​sywangyi</code></a> and
<a
href="https://github.com/Cyrilvallez"><code>@​Cyrilvallez</code></a></li>
<li>Align logit distributions for CandidateGenerators using sampling (<a
href="https://redirect.github.com/huggingface/transformers/issues/48007">#48007</a>)
by <a
href="https://github.com/Cyrilvallez"><code>@​Cyrilvallez</code></a></li>
<li>Fix MTP config when mlp_layer_types is absent (<a
href="https://redirect.github.com/huggingface/transformers/issues/48015">#48015</a>)
by <a
href="https://github.com/Cyrilvallez"><code>@​Cyrilvallez</code></a></li>
<li>Fallback from 'lanczos' to 'bicubic' when on cuda (<a
href="https://redirect.github.com/huggingface/transformers/issues/48026">#48026</a>)
by <a
href="https://github.com/zucchini-nlp"><code>@​zucchini-nlp</code></a></li>
<li>Fix gemma4 video to device (<a
href="https://redirect.github.com/huggingface/transformers/issues/47896">#47896</a>)
by <a href="https://github.com/guarin"><code>@​guarin</code></a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="550d7b3834"><code>550d7b3</code></a>
Release: v5.15.1</li>
<li><a
href="7e9f99c26d"><code>7e9f99c</code></a>
Fix MTP config when mlp_layer_types is absent (<a
href="https://redirect.github.com/huggingface/transformers/issues/48015">#48015</a>)</li>
<li><a
href="6e336fdd24"><code>6e336fd</code></a>
Fix gemma4 video to device (<a
href="https://redirect.github.com/huggingface/transformers/issues/47896">#47896</a>)</li>
<li><a
href="c79e26aee9"><code>c79e26a</code></a>
Fallback from 'lanczos' to 'bicubic' when on cuda (<a
href="https://redirect.github.com/huggingface/transformers/issues/48026">#48026</a>)</li>
<li><a
href="d93f042f09"><code>d93f042</code></a>
Align logit distributions for CandidateGenerators using sampling (<a
href="https://redirect.github.com/huggingface/transformers/issues/48007">#48007</a>)</li>
<li><a
href="69bc61d44e"><code>69bc61d</code></a>
Fix DFlash candidate token device mismatch with
device_map=&quot;auto&quot; (<a
href="https://redirect.github.com/huggingface/transformers/issues/47877">#47877</a>)</li>
<li>See full diff in <a
href="https://github.com/huggingface/transformers/compare/v5.15.0...v5.15.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `ty` from 0.0.72 to 0.0.74
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ty/releases">ty's
releases</a>.</em></p>
<blockquote>
<h2>0.0.74</h2>
<h2>Release Notes</h2>
<p>Released on 2026-08-22.</p>
<h3>Bug fixes</h3>
<ul>
<li>Avoid duplicate bindings in multi-target assignments (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27938">#27938</a>)</li>
<li>Avoid panic on unpacked kwargs in string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27963">#27963</a>)</li>
<li>Fix stack overflow in recursive <code>TypedDict</code> dictionary
compatibility (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27951">#27951</a>)</li>
<li>Handle assignment expressions in string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27921">#27921</a>)</li>
<li>Handle dynamic classes in string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27883">#27883</a>)</li>
<li>Preserve string annotation context in lambda defaults and
<code>TypedDict</code> types (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27914">#27914</a>)</li>
<li>Skip invalid subscript arguments in string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27917">#27917</a>)</li>
<li>Skip invalid subscript operands in string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27882">#27882</a>)</li>
</ul>
<h3>LSP server</h3>
<ul>
<li>Add <code>untrustedWorkspace</code> option to the LSP (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27828">#27828</a>)</li>
<li>Add executable discovery to the server command (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27806">#27806</a>)</li>
<li>Handle file-valued workspace folders from Zed (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27836">#27836</a>)</li>
<li>Skip scripts with an invalid PEP 723 configuration (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27505">#27505</a>)</li>
<li>Support pull diagnostics for notebook cells (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27778">#27778</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Update mypy/pyright comparison table (<a
href="https://redirect.github.com/astral-sh/ty/pull/4165">#4165</a>)</li>
</ul>
<h3>Diagnostics</h3>
<ul>
<li>Add an opt-in <code>unsound-assignment</code> rule for variables (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27874">#27874</a>)</li>
<li>Fix variadic signature display (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27869">#27869</a>)</li>
<li>Highlight declarations in invalid-assignment diagnostics (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27872">#27872</a>)</li>
<li>Improve <code>LiteralString</code> suggestions in string annotations
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/27931">#27931</a>)</li>
<li>Use <code>invalid-type-form</code> for non-generic class annotations
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/27889">#27889</a>)</li>
</ul>
<h3>Core type checking</h3>
<ul>
<li>Add bounded constraint solution projections (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27949">#27949</a>)</li>
<li>Fix invariant gradual tuple materialization ranges (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27946">#27946</a>)</li>
<li>Guard recursive constructor bindings by receiver (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27958">#27958</a>)</li>
<li>Preserve all alternatives in bounded intersections (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27898">#27898</a>)</li>
<li>Preserve keyword safety for unpacked callables (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27517">#27517</a>)</li>
<li>Preserve source protocol members and classify finite aliases (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27772">#27772</a>)</li>
<li>Preserve type-variable order when reloading constraints (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27904">#27904</a>)</li>
<li>Propagate narrowing through statically known branches (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27752">#27752</a>)</li>
<li>Recognize ABC metaclass methods on protocols (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27897">#27897</a>)</li>
<li>Support <code>__slots__</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27730">#27730</a>)</li>
</ul>
<h3>Performance</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ty/blob/main/CHANGELOG.md">ty's
changelog</a>.</em></p>
<blockquote>
<h2>0.0.74</h2>
<p>Released on 2026-08-22.</p>
<h3>Bug fixes</h3>
<ul>
<li>Avoid duplicate bindings in multi-target assignments (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27938">#27938</a>)</li>
<li>Avoid panic on unpacked kwargs in string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27963">#27963</a>)</li>
<li>Fix stack overflow in recursive <code>TypedDict</code> dictionary
compatibility (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27951">#27951</a>)</li>
<li>Handle assignment expressions in string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27921">#27921</a>)</li>
<li>Handle dynamic classes in string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27883">#27883</a>)</li>
<li>Preserve string annotation context in lambda defaults and
<code>TypedDict</code> types (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27914">#27914</a>)</li>
<li>Skip invalid subscript arguments in string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27917">#27917</a>)</li>
<li>Skip invalid subscript operands in string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27882">#27882</a>)</li>
</ul>
<h3>LSP server</h3>
<ul>
<li>Add <code>untrustedWorkspace</code> option to the LSP (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27828">#27828</a>)</li>
<li>Add executable discovery to the server command (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27806">#27806</a>)</li>
<li>Handle file-valued workspace folders from Zed (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27836">#27836</a>)</li>
<li>Skip scripts with an invalid PEP 723 configuration (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27505">#27505</a>)</li>
<li>Support pull diagnostics for notebook cells (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27778">#27778</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Update mypy/pyright comparison table (<a
href="https://redirect.github.com/astral-sh/ty/pull/4165">#4165</a>)</li>
</ul>
<h3>Diagnostics</h3>
<ul>
<li>Add an opt-in <code>unsound-assignment</code> rule for variables (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27874">#27874</a>)</li>
<li>Fix variadic signature display (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27869">#27869</a>)</li>
<li>Highlight declarations in invalid-assignment diagnostics (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27872">#27872</a>)</li>
<li>Improve <code>LiteralString</code> suggestions in string annotations
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/27931">#27931</a>)</li>
<li>Use <code>invalid-type-form</code> for non-generic class annotations
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/27889">#27889</a>)</li>
</ul>
<h3>Core type checking</h3>
<ul>
<li>Add bounded constraint solution projections (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27949">#27949</a>)</li>
<li>Fix invariant gradual tuple materialization ranges (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27946">#27946</a>)</li>
<li>Guard recursive constructor bindings by receiver (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27958">#27958</a>)</li>
<li>Preserve all alternatives in bounded intersections (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27898">#27898</a>)</li>
<li>Preserve keyword safety for unpacked callables (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27517">#27517</a>)</li>
<li>Preserve source protocol members and classify finite aliases (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27772">#27772</a>)</li>
<li>Preserve type-variable order when reloading constraints (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27904">#27904</a>)</li>
<li>Propagate narrowing through statically known branches (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27752">#27752</a>)</li>
<li>Recognize ABC metaclass methods on protocols (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27897">#27897</a>)</li>
<li>Support <code>__slots__</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27730">#27730</a>)</li>
</ul>
<h3>Performance</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="00199f0aaa"><code>00199f0</code></a>
Bump version to 0.0.74 (<a
href="https://redirect.github.com/astral-sh/ty/issues/4351">#4351</a>)</li>
<li><a
href="5769062fa1"><code>5769062</code></a>
Update mypy/pyright comparison table (<a
href="https://redirect.github.com/astral-sh/ty/issues/4165">#4165</a>)</li>
<li><a
href="4fcb06010f"><code>4fcb060</code></a>
Remove Zulip from the PGO training (<a
href="https://redirect.github.com/astral-sh/ty/issues/4336">#4336</a>)</li>
<li><a
href="a7a706442a"><code>a7a7064</code></a>
Use the versions bot's ruleset bypass when merging (<a
href="https://redirect.github.com/astral-sh/ty/issues/4333">#4333</a>)</li>
<li><a
href="01b0fab009"><code>01b0fab</code></a>
Update prek dependencies (<a
href="https://redirect.github.com/astral-sh/ty/issues/4325">#4325</a>)</li>
<li><a
href="deef42f517"><code>deef42f</code></a>
Update dependency python to 3.14 (<a
href="https://redirect.github.com/astral-sh/ty/issues/4326">#4326</a>)</li>
<li><a
href="6d35edf08f"><code>6d35edf</code></a>
Update astral-sh/setup-uv action to v10 (<a
href="https://redirect.github.com/astral-sh/ty/issues/4327">#4327</a>)</li>
<li><a
href="4bd2833c4f"><code>4bd2833</code></a>
Bump version to 0.0.73 (<a
href="https://redirect.github.com/astral-sh/ty/issues/4322">#4322</a>)</li>
<li><a
href="93d0d4fc70"><code>93d0d4f</code></a>
Disable known GitHub cache clients in release workflows (<a
href="https://redirect.github.com/astral-sh/ty/issues/4317">#4317</a>)</li>
<li><a
href="ec4806b486"><code>ec4806b</code></a>
Harden release workflow permissions and shell inputs (<a
href="https://redirect.github.com/astral-sh/ty/issues/4319">#4319</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ty/compare/0.0.72...0.0.74">compare
view</a></li>
</ul>
</details>
<br />

Updates `ruff` from 0.16.3 to 0.16.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.16.4</h2>
<h2>Release Notes</h2>
<p>Released on 2026-08-20.</p>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-use-pathlib</code>] Add autofix for
<code>PTH116</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/26460">#26460</a>)</li>
<li>[<code>refurb</code>] Restrict <code>delete-full-slice</code> to
lists (<code>FURB131</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27711">#27711</a>)</li>
<li>[<code>refurb</code>] Skip <code>FURB101</code> and
<code>FURB103</code> when the <code>open</code> argument is a file
descriptor (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27643">#27643</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix <code>InvalidInstruction</code> on Windows CPUs that do not
support <code>POPCNT</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27803">#27803</a>)</li>
<li>[<code>pyflakes</code>] Emit semantic syntax errors in string type
definitions as <code>F722</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27835">#27835</a>)</li>
<li>[<code>pylint</code>] Allow <code>os._exit</code> imports in
<code>import-private-name</code> (<code>PLC2701</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27738">#27738</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[syntax-errors] Align mixed t-string/bytes error message with
CPython 3.14 (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27766">#27766</a>)</li>
<li>[<code>ruff</code>] Add <code>ctypes.LittleEndianStructure</code>
and related types to existing exception (<code>RUF012</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27753">#27753</a>)</li>
<li>[syntax-errors] Detect duplicate keyword arguments (<a
href="https://redirect.github.com/astral-sh/ruff/pull/17804">#17804</a>)</li>
<li>[syntax-errors] Detect parameters declared <code>nonlocal</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27628">#27628</a>)</li>
</ul>
<h3>Server</h3>
<ul>
<li>Offer display-only fixes and mark safe fixes preferred (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27807">#27807</a>)</li>
<li>Support pull diagnostics for notebook cells (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27779">#27779</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add default indicator to rules table (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27724">#27724</a>)</li>
<li>Fix broken link to Python docs (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27757">#27757</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Fix s390x stacker assembly in release builds (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27776">#27776</a>)</li>
<li>Guarantee minimum stack size when parsing a module, standalone
expression, and suites (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25464">#25464</a>)</li>
<li>Reduce configuration deserialization code size (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27924">#27924</a>)</li>
<li>Check packed AST index bounds (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27849">#27849</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/AbhinavMir"><code>@​AbhinavMir</code></a></li>
<li><a
href="https://github.com/eduardorittner"><code>@​eduardorittner</code></a></li>
<li><a href="https://github.com/royb3"><code>@​royb3</code></a></li>
<li><a
href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
<li><a href="https://github.com/carljm"><code>@​carljm</code></a></li>
<li><a
href="https://github.com/rosstitmarsh"><code>@​rosstitmarsh</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.16.4</h2>
<p>Released on 2026-08-20.</p>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-use-pathlib</code>] Add autofix for
<code>PTH116</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/26460">#26460</a>)</li>
<li>[<code>refurb</code>] Restrict <code>delete-full-slice</code> to
lists (<code>FURB131</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27711">#27711</a>)</li>
<li>[<code>refurb</code>] Skip <code>FURB101</code> and
<code>FURB103</code> when the <code>open</code> argument is a file
descriptor (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27643">#27643</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix <code>InvalidInstruction</code> on Windows CPUs that do not
support <code>POPCNT</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27803">#27803</a>)</li>
<li>[<code>pyflakes</code>] Emit semantic syntax errors in string type
definitions as <code>F722</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27835">#27835</a>)</li>
<li>[<code>pylint</code>] Allow <code>os._exit</code> imports in
<code>import-private-name</code> (<code>PLC2701</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27738">#27738</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[syntax-errors] Align mixed t-string/bytes error message with
CPython 3.14 (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27766">#27766</a>)</li>
<li>[<code>ruff</code>] Add <code>ctypes.LittleEndianStructure</code>
and related types to existing exception (<code>RUF012</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27753">#27753</a>)</li>
<li>[syntax-errors] Detect duplicate keyword arguments (<a
href="https://redirect.github.com/astral-sh/ruff/pull/17804">#17804</a>)</li>
<li>[syntax-errors] Detect parameters declared <code>nonlocal</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27628">#27628</a>)</li>
</ul>
<h3>Server</h3>
<ul>
<li>Offer display-only fixes and mark safe fixes preferred (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27807">#27807</a>)</li>
<li>Support pull diagnostics for notebook cells (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27779">#27779</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add default indicator to rules table (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27724">#27724</a>)</li>
<li>Fix broken link to Python docs (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27757">#27757</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Fix s390x stacker assembly in release builds (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27776">#27776</a>)</li>
<li>Guarantee minimum stack size when parsing a module, standalone
expression, and suites (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25464">#25464</a>)</li>
<li>Reduce configuration deserialization code size (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27924">#27924</a>)</li>
<li>Check packed AST index bounds (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27849">#27849</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/AbhinavMir"><code>@​AbhinavMir</code></a></li>
<li><a
href="https://github.com/eduardorittner"><code>@​eduardorittner</code></a></li>
<li><a href="https://github.com/royb3"><code>@​royb3</code></a></li>
<li><a
href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
<li><a href="https://github.com/carljm"><code>@​carljm</code></a></li>
<li><a
href="https://github.com/rosstitmarsh"><code>@​rosstitmarsh</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a
href="https://github.com/zaniebot"><code>@​zaniebot</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="11c76bf48f"><code>11c76bf</code></a>
Bump 0.16.4 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27937">#27937</a>)</li>
<li><a
href="d53c8c5866"><code>d53c8c5</code></a>
Isolate playground builds from deployment credentials (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27839">#27839</a>)</li>
<li><a
href="cab001e5de"><code>cab001e</code></a>
Disable uv preview for releases and pre-commit hooks (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27939">#27939</a>)</li>
<li><a
href="f8d575fedc"><code>f8d575f</code></a>
[ty] Clarify writing guidance for human readers (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27912">#27912</a>)</li>
<li><a
href="ca45faebb1"><code>ca45fae</code></a>
Set <code>--preview</code> and <code>--default-index</code> for the
<code>uv-lock</code> hook (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27935">#27935</a>)</li>
<li><a
href="4827bf7cb4"><code>4827bf7</code></a>
Export <code>UV_DEFAULT_INDEX</code> in <code>release.sh</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27934">#27934</a>)</li>
<li><a
href="d1087a4b9e"><code>d1087a4</code></a>
[ty] Handle assignment expressions in string annotations (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27921">#27921</a>)</li>
<li><a
href="680cce48b6"><code>680cce4</code></a>
[ty] Optimize inherited recursive protocol comparisons (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27922">#27922</a>)</li>
<li><a
href="974d3cbc04"><code>974d3cb</code></a>
Upgrade ecosystem-analyzer and mypy_primer to the latest upstream pins
(<a
href="https://redirect.github.com/astral-sh/ruff/issues/27932">#27932</a>)</li>
<li><a
href="b169b40235"><code>b169b40</code></a>
Install cargo tools locked (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27929">#27929</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.16.3...0.16.4">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-29 00:01:43 -07:00
.github build(deps): bump actions/cache/restore from 5.1.0 to 6.1.0 (#1502) 2026-08-21 15:43:18 -07:00
assets Make Apply the single Admin configuration action (#1595) 2026-08-27 22:57:59 -07:00
e2e Make Apply the single Admin configuration action (#1595) 2026-08-27 22:57:59 -07:00
scripts Install Aider with FCC's managed uv (#1600) 2026-08-28 10:48:17 -07:00
smoke Preserve images across protocol translations (#1602) 2026-08-28 14:34:35 -07:00
src/free_claude_code feat: propagate model token limits (#1605) 2026-08-28 22:41:05 -07:00
tests feat: propagate model token limits (#1605) 2026-08-28 22:41:05 -07:00
.env.example Preserve images across protocol translations (#1602) 2026-08-28 14:34:35 -07:00
.gitignore Make provider setup discoverable in the Admin UI (#1454) 2026-08-17 04:34:30 -07:00
.python-version Set python version to 3.14.0 2026-03-02 05:13:04 -08:00
AGENTS.md Reuse dependency caches across pull requests (#1461) 2026-08-17 23:26:39 -07:00
ARCHITECTURE.md Preserve images across protocol translations (#1602) 2026-08-28 14:34:35 -07:00
CLAUDE.md Reuse dependency caches across pull requests (#1461) 2026-08-17 23:26:39 -07:00
CONTRIBUTING.md Simplify README around customer usage (#1032) 2026-07-09 18:19:01 -07:00
LICENSE added license 2026-01-28 13:36:34 -08:00
pyproject.toml feat: propagate model token limits (#1605) 2026-08-28 22:41:05 -07:00
README.md Remove redundant Aider routing note (#1603) 2026-08-28 16:25:11 -07:00
uv.lock build(deps): bump the minor-and-patch group across 1 directory with 5 updates (#1601) 2026-08-29 00:01:43 -07:00

Independent open-source project. Not affiliated with or endorsed by Anthropic. Claude and Claude Code are trademarks of Anthropic.

What You Get

  • 50 ToS-friendly providers. 1.3B+ free tokens every month. Use free, paid, subscription, and local models from one searchable UI without putting your account at risk. FCC follows provider terms and removes integrations if they stop being allowed.
  • 10 coding agents. One model catalog. Run Claude Code, Codex, Pi, OpenCode, Cline, Hermes, DeepSeek Harness, Grok Build, Muse Code, or Aider with your FCC models.
  • Keep coding through provider outages. After retries are exhausted, FCC automatically tries your next configured model without making you restart the turn—across every client.
  • Up to 90% fewer terminal-output tokens. Optional RTK filters common command output, while five FCC optimizations handle quota probes, command-prefix detection, titles, suggestions, and filepaths without calling a provider.
  • Terminal, desktop, IDE, or phone. Work through native launchers, VS Code, Codex App, JetBrains, Discord, or Telegram.
  • Voice notes in. Code out. Talk to your agent using local Whisper or NVIDIA NIM transcription.
  • Agent capabilities stay intact. Stream responses, use tools, preserve native interleaved thinking for maximum performance, send images, and route Fable, Opus, Sonnet, and Haiku independently with compatible models.

Free-tier availability and limits are controlled by each provider and may change.

Claude Code running with Free Claude Code

Claude Code running with FCC.

Quick Start

1. Install Or Update

macOS/Linux:

curl -fsSL "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.sh" | sh

Windows PowerShell:

& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.ps1")))

Re-run the same command to update. When prompted, choose at least one coding agent and optionally RTK. You can review the installers before running them: install.sh and install.ps1.

2. Start FCC

Windows

Open Free Claude Code from your desktop or Start menu.

macOS

Open Free Claude Code from your desktop or Applications folder.

Linux

Run:

fcc-server

FCC opens the Admin UI after starting. On Windows and macOS, use the tray or menu-bar icon to open Admin, restart, or quit. When using fcc-server, keep its terminal open.

3. Configure NVIDIA NIM

  1. Create an API key at build.nvidia.com/settings/api-keys.
  2. Open the Admin UI URL from the server log.
  3. Paste the key into NVIDIA_NIM_API_KEY.
  4. Leave MODEL on the default nvidia_nim/nvidia/nemotron-3-super-120b-a12b, or search the model dropdown and select another model.
  5. Click Apply.

To protect the local proxy with a bearer token, enable Proxy Authentication in Admin.

Free Claude Code Admin UI

4. Run Your Coding Agent

Claude Code:

fcc-claude

Codex:

fcc-codex

Pi:

fcc-pi

OpenCode:

fcc-opencode

Cline:

fcc-cline

Hermes:

fcc-hermes

DeepSeek Harness Web:

fcc-dsh

Grok Build:

fcc-grok

Muse Code:

fcc-muse

Aider:

fcc-aider

Claude Code model picker showing FCC models

Select an FCC model from Claude Code's native /model picker.

Choose A Provider

  1. Open a provider link below for its key, models, or setup instructions.
  2. In the Admin UI, configure the listed setting. For OpenAI, use Providers → Connected accounts instead.
  3. Search the MODEL dropdown and select a model. If the provider cannot list models, enter <provider-id>/<exact-provider-model-id> manually.
  4. Click Apply.

Optional: add an ordered Fallback Models list under Model Config. It applies to every connected client. A failed request may reach and consume usage from more than one provider before succeeding.

Provider catalog
Provider Admin UI setting Example MODEL
NVIDIA NIM NVIDIA_NIM_API_KEY nvidia_nim/nvidia/nemotron-3-super-120b-a12b
OpenRouter OPENROUTER_API_KEY open_router/openrouter/free
Groq GROQ_API_KEY groq/llama-3.3-70b-versatile
ClinePass CLINE_API_KEY cline_pass/cline-pass/kimi-k3
OpenAI / ChatGPT Connect ChatGPT in the Admin UI openai/<model-id>
xAI (Grok) XAI_API_KEY xai/grok-4.5
QwenCloud Token Plan QWENCLOUD_API_KEY qwencloud/qwen3.7-plus
QwenCloud Coding Plan QWENCLOUD_CODING_API_KEY qwencloud_coding/qwen3.7-plus
Together AI TOGETHER_API_KEY together/zai-org/GLM-5.2
DeepInfra DEEPINFRA_API_KEY deepinfra/deepseek-ai/DeepSeek-V4-Flash
SiliconFlow SILICONFLOW_API_KEY siliconflow/Qwen/Qwen3-32B
Nebius Token Factory NEBIUS_API_KEY nebius/Qwen/Qwen3-30B-A3B
Chutes CHUTES_API_KEY chutes/Qwen/Qwen3-32B-TEE
Featherless AI FEATHERLESS_API_KEY featherless/Qwen/Qwen3-32B
Agnes AI AGNES_API_KEY agnes/agnes-2.0-flash
ZenMux ZENMUX_API_KEY zenmux/deepseek/deepseek-v4-flash-free
W&B Inference WANDB_API_KEY wandb/openai/gpt-oss-20b
Azure OpenAI AZURE_OPENAI_API_KEY and AZURE_OPENAI_BASE_URL azure_openai/<deployment-name>
Google AI Studio (Gemini) GEMINI_API_KEY gemini/models/gemini-3.1-flash-lite
Google Vertex AI VERTEX_PROJECT_ID + ADC vertex/google/gemini-3.5-flash
DeepSeek DEEPSEEK_API_KEY deepseek/deepseek-chat
Mistral La Plateforme MISTRAL_API_KEY mistral/devstral-small-latest
Mistral Codestral CODESTRAL_API_KEY mistral_codestral/codestral-latest
OpenCode Zen OPENCODE_API_KEY opencode_zen/gpt-5.3-codex
OpenCode Go OPENCODE_API_KEY opencode_go/minimax-m2.7
Vercel AI Gateway AI_GATEWAY_API_KEY vercel/openai/gpt-5.5
Amazon Bedrock AWS_BEARER_TOKEN_BEDROCK bedrock/openai.gpt-oss-120b
Hugging Face Inference Providers HUGGINGFACE_API_KEY huggingface/Qwen/Qwen3-Coder-480B-A35B-Instruct:fastest
Cohere COHERE_API_KEY cohere/command-a-plus-05-2026
GitHub Models GITHUB_MODELS_TOKEN github_models/openai/gpt-4.1
Wafer WAFER_API_KEY wafer/DeepSeek-V4-Pro
Kimi API KIMI_API_KEY kimi/kimi-k2.5
Kimi Code KIMI_CODE_API_KEY kimi_code/k3
MiniMax MINIMAX_API_KEY minimax/MiniMax-M3
Cerebras Inference CEREBRAS_API_KEY cerebras/gpt-oss-120b
SambaNova SAMBANOVA_API_KEY sambanova/Meta-Llama-3.3-70B-Instruct
Kilo.ai KILO_API_KEY kilo/kilo-auto/free
Fireworks AI FIREWORKS_API_KEY fireworks/accounts/fireworks/models/llama-v3p3-70b-instruct
Novita AI NOVITA_API_KEY novita/deepseek/deepseek-v4-flash-0731
Cloudflare Workers AI CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID cloudflare/@cf/moonshotai/kimi-k2.6
Z.ai Coding Plan ZAI_API_KEY zai/glm-5.2
Z.ai API (pay as you go) ZAI_API_KEY zai_api/glm-4.7-flash
TokenRouter TOKENROUTER_API_KEY tokenrouter/moonshotai/kimi-k3-free
NaraRoute NARAROUTE_API_KEY nararoute/kimi-k3-free
Poolside AI POOLSIDE_API_KEY poolside/poolside/laguna-s-2.1
LLM7.io LLM7_API_KEY llm7/default
Ollama Cloud OLLAMA_API_KEY ollama_cloud/qwen3-coder:480b
LM Studio LM_STUDIO_BASE_URL lmstudio/<model-id>
llama.cpp LLAMACPP_BASE_URL llamacpp/<model-id>
Ollama OLLAMA_BASE_URL ollama/<model-tag>
Provider-specific setup
  • OpenAI uses your ChatGPT subscription rather than an API key. Connect from Providers → Connected accounts in the Admin UI. Use device code on headless systems. Restart an already-running agent after connecting.
  • Azure OpenAI uses the deployment names from your resource. Set AZURE_OPENAI_BASE_URL to its complete v1 endpoint, such as https://YOUR-RESOURCE-NAME.openai.azure.com/openai/v1/, and select a deployment that supports Chat Completions. Enter the deployment name as a custom model slug if it does not appear in the model dropdown.
  • Mistral Codestral uses a separate key from Mistral La Plateforme.
  • Kimi Code subscription keys use kimi_code/; Kimi API credit keys use kimi/. Kimi Code plans are for personal interactive coding-agent use under Kimi's community guidelines.
  • QwenCloud Coding Plan keys use qwencloud_coding/; QwenCloud Token Plan keys use qwencloud/. The keys and endpoints are not interchangeable. Coding Plan is for local, personal, interactive coding-agent use under the Coding Plan terms.
  • OpenCode Zen and OpenCode Go share OPENCODE_API_KEY but use the explicit opencode_zen/ and opencode_go/ model prefixes.
  • For Amazon Bedrock, set BEDROCK_BASE_URL to the URL for the same region as the API key and select one of the listed models.
  • Vertex AI uses Google Application Default Credentials instead of an API key. Locally, run gcloud auth application-default login once; service-account files and attached service accounts also work. Set VERTEX_PROJECT_ID, and optionally change VERTEX_LOCATION from its global default.
  • Cloudflare requires both its API token and account ID.
  • For Ollama Cloud, use the exact model IDs shown in the model picker. Local Ollama uses the separate ollama/ prefix.
  • Prefer tool-capable models for coding agents. Local models also need enough context for the agent's system prompt and tool definitions.
Local provider setup

LM Studio

Start LM Studio's local server, load a tool-capable model, and use the model identifier shown by LM Studio with the lmstudio/ prefix. The default URL is http://localhost:1234/v1.

llama.cpp

Start llama-server with its OpenAI-compatible Chat Completions API and enough context for the model. Use the local model ID with the llamacpp/ prefix. LLAMACPP_BASE_URL defaults to http://localhost:8080/v1; FCC accepts either the server root or an explicit /v1 suffix.

Ollama

ollama pull llama3.1
ollama serve

Use the tag shown by ollama list with the ollama/ prefix. OLLAMA_BASE_URL defaults to http://localhost:11434; FCC accepts either the root URL or an explicit /v1 suffix.

Optional model-tier routing

MODEL is the fallback for every request. Select a model for MODEL_FABLE, MODEL_OPUS, MODEL_SONNET, or MODEL_HAIKU to override an individual Claude Code tier; select None to use MODEL.

For example, route Opus to nvidia_nim/nvidia/nemotron-3-super-120b-a12b, Sonnet to open_router/openrouter/free, Haiku to lmstudio/qwen3.5-coder, and keep MODEL on zai/glm-5.2.

Reasoning control

Open Admin UI → Model Config → Reasoning and select the behavior you want.

Selection Behavior
From client (default) Use the effort sent by Claude Code, Codex, Pi, OpenCode, Cline, Hermes, DeepSeek Harness, Grok Build, Muse Code, or Aider. If none is sent, keep the provider default.
Off Request reasoning to be disabled.
Low, Medium, High, X-High, or Max Override the client with the selected reasoning level.
Inherit (Fable, Opus, Sonnet, and Haiku only) Use the root Reasoning selection.

Providers that do not support a selected control retain their own behavior.

Connect Your Client

For terminal use, start fcc-server, then run fcc-claude, fcc-codex, fcc-pi, fcc-opencode, fcc-cline, fcc-hermes, fcc-dsh, fcc-grok, fcc-muse, or fcc-aider. Use the guides below for editor integrations.

Claude Code in VS Code

Install the Claude Code extension. Open VS Code's user settings as JSON and add:

"claudeCode.disableLoginPrompt": true,
"claudeCode.environmentVariables": [
  { "name": "ANTHROPIC_BASE_URL", "value": "http://localhost:8082" },
  { "name": "ANTHROPIC_AUTH_TOKEN", "value": "freecc" },
  { "name": "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY", "value": "1" },
  { "name": "CLAUDE_CODE_AUTO_COMPACT_WINDOW", "value": "190000" },
  { "name": "DISABLE_AUTOUPDATER", "value": "1" },
  { "name": "DISABLE_FEEDBACK_COMMAND", "value": "1" },
  { "name": "DISABLE_ERROR_REPORTING", "value": "1" }
]

Match the port and authentication token to the Admin UI, then reload the extension.

Codex App

Start FCC, then edit your Codex configuration:

  • Windows: %USERPROFILE%\.codex\config.toml
  • macOS: ~/.codex/config.toml

Add the matching model-catalog path and replace YOUR_USERNAME.

Windows:

model_catalog_json = "C:/Users/YOUR_USERNAME/.fcc/codex-model-catalog.json"

macOS:

model_catalog_json = "/Users/YOUR_USERNAME/.fcc/codex-model-catalog.json"

Then add the shared FCC settings:

model_provider = "fcc"
model = "nvidia_nim/nvidia/nemotron-3-super-120b-a12b"

[model_providers.fcc]
name = "Free Claude Code"
base_url = "http://127.0.0.1:8082/v1"
wire_api = "responses"

[model_providers.fcc.auth]
command = "fcc-codex"
args = ["--print-proxy-auth-token"]

Match the model and port to the Admin UI. The auth command reads FCC's current proxy token automatically. Restart the Codex App after setup or model changes, then select an FCC model from its model picker.

Codex in VS Code

Install the Codex extension. Create or edit ~/.codex/config.toml (%USERPROFILE%\.codex\config.toml on Windows):

model_provider = "fcc"
model = "nvidia_nim/nvidia/nemotron-3-super-120b-a12b"

[model_providers.fcc]
name = "Free Claude Code"
base_url = "http://127.0.0.1:8082/v1"
wire_api = "responses"

[model_providers.fcc.auth]
command = "fcc-codex"
args = ["--print-proxy-auth-token"]

Match model and the port to the Admin UI. The auth command reads FCC's current proxy token automatically. Restart VS Code after setup or model changes. For WSL-backed Codex, edit the file inside WSL.

Claude Code in JetBrains ACP

Edit the installed Claude ACP configuration:

  • Windows: C:\Users\%USERNAME%\AppData\Roaming\JetBrains\acp-agents\installed.json
  • Linux/macOS: ~/.jetbrains/acp.json

Set the environment for acp.registry.claude-acp:

"env": {
  "ANTHROPIC_BASE_URL": "http://localhost:8082",
  "ANTHROPIC_AUTH_TOKEN": "freecc",
  "CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY": "1",
  "CLAUDE_CODE_AUTO_COMPACT_WINDOW": "190000",
  "DISABLE_AUTOUPDATER": "1",
  "DISABLE_FEEDBACK_COMMAND": "1",
  "DISABLE_ERROR_REPORTING": "1"
}

Match the port and token to the Admin UI, then restart the IDE.

Claude Code still asks you to log in

If Claude Code asks you to log in after you configure the FCC URL and token, open its state file:

  • Windows: %USERPROFILE%\.claude.json
  • macOS/Linux/WSL: ~/.claude.json

Merge this property into the existing JSON without removing its other fields:

"hasCompletedOnboarding": true

If the file does not exist, create it with a complete JSON object:

{
  "hasCompletedOnboarding": true
}

Restart Claude Code or the IDE after saving the file.

Optional Integrations

Configure integrations from Admin UI → Messaging, then click Apply.

Discord bot
  1. Create a bot in the Discord Developer Portal.
  2. Enable Message Content Intent and invite it with read, send, message-history, and Manage Messages permissions so /clear can remove user prompts.
  3. Set Messaging Platform to discord.
  4. Enter Discord Bot Token, Allowed Discord Channels, and an absolute Allowed Directory.
  5. Apply the settings and restart the server if requested.
Telegram bot
  1. Create a bot with @BotFather.
  2. Get your numeric user ID from @userinfobot. In groups, grant the bot permission to delete messages.
  3. Set Messaging Platform to telegram.
  4. Enter Telegram Bot Token, Allowed Telegram User ID, and an absolute Allowed Directory.
  5. Apply the settings and restart the server if requested.

Messaging commands

Usage Behavior
/stats Show session state.
Standalone /stop Cancel all work.
Reply with /stop Cancel only the selected request while other queued requests continue.
Standalone /clear Reset all FCC state and remove every tracked message in that chat, including user prompts, voice notes, FCC replies, Telegram's online notice, and the clear command itself.
Reply with /clear Delete the selected message and its literal platform reply subtree while preserving its ancestors and siblings.
Voice notes

Re-run the installer with the command for your voice backend.

macOS/Linux:

NVIDIA NIM transcription:

curl -fsSL "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.sh" | sh -s -- --voice-nim

Local Whisper on CPU or CUDA:

curl -fsSL "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.sh" | sh -s -- --voice-local

Both backends:

curl -fsSL "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.sh" | sh -s -- --voice-all

Local Whisper with CUDA 13.0:

curl -fsSL "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.sh" | sh -s -- --voice-local --torch-backend cu130

Windows PowerShell:

NVIDIA NIM transcription:

& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.ps1"))) -VoiceNim

Local Whisper on CPU or CUDA:

& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.ps1"))) -VoiceLocal

Both backends:

& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.ps1"))) -VoiceAll

Local Whisper with CUDA 13.0:

& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install.ps1"))) -VoiceLocal -TorchBackend cu130

Restart fcc-server. In Admin UI → Messaging → Voice, enable voice notes, select cpu, cuda, or nvidia_nim, and choose the Whisper model. Local gated models need HUGGINGFACE_API_KEY; NVIDIA NIM transcription needs NVIDIA_NIM_API_KEY.

Manage Your Installation

Run fcc-server --version to check the installed version without starting FCC.

Update

Re-run the matching command from Install Or Update.

Muse Code on native Windows

Rerunning FCC's Windows installer with Muse Code selected installs or updates FCC's managed Muse executable. To install or update only Muse Code:

& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/install-muse.ps1")))

To remove only that managed Muse executable while preserving Muse data and other installations:

& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/uninstall-muse.ps1")))

FCC's ordinary uninstaller below continues to leave Muse Code installed.

Uninstall

Stop every running FCC command before uninstalling.

Removes

  • Free Claude Code, including its desktop launcher and commands
  • ~/.fcc/

Keeps

  • uv and Python
  • Claude Code, Codex, Pi, OpenCode, Cline, Hermes, DeepSeek Harness, Grok Build, Muse Code, Aider, and RTK
  • Shared PATH entries

macOS/Linux:

curl -fsSL "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/uninstall.sh" | sh

Windows PowerShell:

& ([scriptblock]::Create((irm "https://raw.githubusercontent.com/Alishahryar1/free-claude-code/main/scripts/uninstall.ps1")))

License

MIT License. See LICENSE for details.