Alishahryar1/free-claude-code
Use Claude Code, Codex, VSCode, Pi, and OpenCode (and 6 other harnesses) for free (1.3B+ free tokens) from your terminal, app, IDE, or phone, and now from the browser with native browser sessions (multi-harness + multi-model) like OpenClaw (voice supported + ToS friendly)
The score is jscpd's own --health model: markup, data and text left out, tests kept. The numbers below are the trending scan's.
Most complex files
- src/free_claude_code/api/admin_static/admin.js915 cx
- smoke/installers/test_installers.py565 cx
- src/free_claude_code/api/admin_static/code_sessions.js532 cx
- scripts/install.sh442 cx
- scripts/install.ps1367 cx
- src/free_claude_code/application/code_sessions/service.py291 cx
- tests/providers/test_streaming_errors.py287 cx
- src/free_claude_code/core/openai_responses/tool_adaptation.py272 cx
- src/free_claude_code/providers/openai_chat/transport.py263 cx
- tests/application/test_code_sessions.py248 cx
Dead code 3.68% unused · 27 findings
- src/free_claude_code/api/admin_static/admin.jsunused-file
- src/free_claude_code/api/admin_static/code_sessions.jsunused-file
- smoke/lib/e2e.pyunused-file
- smoke/lib/claude_cli_matrix.pyunused-file
- smoke/capabilities.pyunused-file
- smoke/features.pyunused-file
- smoke/lib/dsh_provider.pyunused-file
- src/free_claude_code/api/admin_static/api_key_editor.jsunused-file
- src/free_claude_code/api/admin_static/session_ui.jsunused-file
- src/free_claude_code/api/admin_static/model_combobox.jsunused-file
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code.
Largest clones in the code
- 91 lines in 2 placespython606 tokenssrc/free_claude_code/messaging/rendering/discord_markdown.py:194–284src/free_claude_code/messaging/rendering/telegram_markdown.py:207–297
194elif t == "list_item_close": 195 out.append("\n") 196elif t == "blockquote_open": 197 blockquote_level += 1 198elif t == "blockquote_close": 199 blockquote_level = max(0, blockquote_level - 1) 200 out.append("\n") 201elif t == "table_open": 202 if pending_prefix: 203 out.append(apply_blockquote(pending_prefix.rstrip()))First 10 of 91 lines.
- 83 lines in 2 placespowershell443 tokens
183} 184 185function Read-MuseOwnershipRecord { 186 param([Parameter(Mandatory = $true)][string] $RecordPath) 187 188 if (-not (Test-Path -LiteralPath $RecordPath -PathType Leaf)) { 189 return $null 190 } 191 192 try {First 10 of 83 lines.
- 63 lines in 2 placespython343 tokenssrc/free_claude_code/messaging/rendering/discord_markdown.py:128–190src/free_claude_code/messaging/rendering/telegram_markdown.py:140–202
128 out.append(escape_discord(tok.content or "")) 129 i += 1 130 return "".join(out) 131 132out: list[str] = [] 133list_stack: list[dict] = [] 134pending_prefix: str | None = None 135blockquote_level = 0 136in_heading = False 137First 10 of 63 lines.
7 more
- 12 lines in 5 placesjavascript58 tokens
- 12 lines in 4 placespython76 tokens
- 14 lines in 3 placespython77 tokens
- 12 lines in 3 placespython76 tokens
- 27 lines in 2 placesbash142 tokens
- 21 lines in 2 placespython131 tokens
- 38 lines in 2 placesbash130 tokens
Largest clones over all files, tests and data included
- 32 lines in 10 placespythontests110 tokenstests/providers/test_atlascloud.py:106–137tests/providers/test_cheaperinference.py:115–146tests/providers/test_experiential.py:115–146tests/providers/test_featherless.py:182–213tests/providers/test_llm7.py:120–151and 5 more
106 atlascloud_provider: OpenAIChatProvider, 107) -> None: 108 request = _request( 109 messages=[ 110 {"role": "user", "content": "Inspect the file."}, 111 { 112 "role": "assistant", 113 "content": [ 114 {"type": "thinking", "thinking": "Read it first."}, 115 {"type": "text", "text": "I will inspect it."},First 10 of 32 lines.
- 25 lines in 8 placespythontests102 tokenstests/providers/test_atlascloud.py:40–64tests/providers/test_cheaperinference.py:36–60tests/providers/test_experiential.py:36–60tests/providers/test_lightning.py:39–63tests/providers/test_llm7.py:40–64and 3 more
40 admission=immediate_admission(provider_name="atlascloud", max_attempts=1), 41 ) 42 43 44def _request(**overrides: JsonValue) -> MessagesRequest: 45 payload: JsonObject = { 46 "model": _MODEL, 47 "messages": [{"role": "user", "content": "Inspect the file."}], 48 "tools": [ 49 {First 10 of 25 lines.
- 91 lines in 2 placespython606 tokenssrc/free_claude_code/messaging/rendering/discord_markdown.py:194–284src/free_claude_code/messaging/rendering/telegram_markdown.py:207–297
194elif t == "list_item_close": 195 out.append("\n") 196elif t == "blockquote_open": 197 blockquote_level += 1 198elif t == "blockquote_close": 199 blockquote_level = max(0, blockquote_level - 1) 200 out.append("\n") 201elif t == "table_open": 202 if pending_prefix: 203 out.append(apply_blockquote(pending_prefix.rstrip()))First 10 of 91 lines.
- 9 lines in 9 placespython64 tokens
- 25 lines in 6 placespythontests91 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| python | 375 | 76,544 | 72 | 1,022 | 1.34% |
| powershell | 5 | 3,770 | 13 | 283 | 7.51% |
| javascript | 7 | 5,040 | 5 | 63 | 1.25% |
| bash | 13 | 3,007 | 4 | 118 | 3.92% |
| typescript | 1 | 193 | 0 | 0 | 0% |
| perl | 1 | 168 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| python | 849 | 239,219 | 801 | 11,008 | 4.6% |
| powershell | 7 | 3,819 | 13 | 283 | 7.41% |
| yaml | 9 | 795 | 9 | 84 | 10.57% |
| javascript | 7 | 5,040 | 5 | 63 | 1.25% |
| bash | 15 | 3,034 | 4 | 118 | 3.89% |
| markup | 9 | 442 | 2 | 31 | 7.01% |
| css | 3 | 1,660 | 1 | 7 | 0.42% |
| txt | 2 | 42 | 1 | 17 | 40.48% |
| markdown | 7 | 962 | 0 | 0 | 0% |
| typescript | 2 | 232 | 0 | 0 | 0% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Oct 13, 2026 | #4 | 59,417 (+626) | 914 | 255,754 | 836 | 4.54% | 1.67% | C 61.7 | 8e67526 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.