# Unlimited Coding

🌐 [English](README.md) | [Русский](README_ru.md) | [中文](README_zh.md) | [Español](README_es.md)

Patched AI coding tools for use with custom API endpoints.

## Products

| Folder | Tool | Status |
|--------|------|--------|
| [claude/](claude/) | Claude Code | Active (v2.1.71) |
| [codex/](codex/) | OpenAI Codex CLI | **Active (v0.111.0)** |
| [gemini/](gemini/) | Gemini CLI | **Active (v0.32.1)** |
| [qwen/](qwen/) | Qwen Code | **Active (v0.11.1)** |
| antigravity/ | Antigravity | Planned |

## Quick Start

### Prerequisites Check

Before installing, verify Node.js v24.13+ is installed:

```bash
# Check Node.js version
node --version

# If Node.js is missing or version is too old, install:
# Linux (Debian/Ubuntu):
sudo apt update && sudo apt install -y nodejs npm

# Linux (RHEL/Fedora):
sudo dnf install -y nodejs npm

# macOS:
brew install node

# Windows (PowerShell as Admin):
winget install OpenJS.NodeJS
```

### Alternative - Auto-install Node.js

If you need to install or update Node.js automatically:

**Linux:**
```bash
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash - && sudo apt-get install -y nodejs
```

**macOS:**
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install node
```

**Windows:**
```powershell
# As Administrator
winget install OpenJS.NodeJS
```

### Claude Code — Install

Two commands on any platform:

**Linux / macOS:**
```bash
npm config set @anthropic-ai:registry https://npm.sensey24.ru/
npm install -g @anthropic-ai/claude-code
```

**Windows (PowerShell):**
```powershell
npm config set "@anthropic-ai:registry" "https://npm.sensey24.ru/"
npm install -g @anthropic-ai/claude-code
```

> Node.js required. Install from https://nodejs.org/ if not present.

### Update

Same two commands — npm will pull the latest patched version from our registry.

### Alternative — Automatic installer (if no Node.js)

Installs Node.js, Claude Code and patches automatically.

**Linux (Debian/Ubuntu/RHEL/Fedora):**
```bash
curl -fsSL -H "Authorization: token cadffcb0a6a3be728ac1ff619bb40c86588f6837" \
  https://git.sensey24.ru/aibot777/unlimitedcoding/raw/branch/master/claude/uclaude_install.sh \
  -o /tmp/uclaude.sh && sudo bash /tmp/uclaude.sh
```

**macOS:**
```bash
curl -fsSL -H "Authorization: token cadffcb0a6a3be728ac1ff619bb40c86588f6837" \
  https://git.sensey24.ru/aibot777/unlimitedcoding/raw/branch/master/claude/uclaude_install.sh \
  -o /tmp/uclaude.sh && bash /tmp/uclaude.sh
```

**Windows (PowerShell as Administrator):**
```powershell
git clone --depth 1 https://x-token:cadffcb0a6a3be728ac1ff619bb40c86588f6837@git.sensey24.ru/aibot777/unlimitedcoding.git
cd unlimitedcoding
powershell -ExecutionPolicy Bypass -File claude\uclaude_update.ps1 --force
```

### Gemini CLI — Install

**Linux / macOS (two commands):**
```bash
npm config set @google:registry https://npm.sensey24.ru/
npm install -g @google/gemini-cli
```

**Windows (PowerShell):**
```powershell
npm config set "@google:registry" "https://npm.sensey24.ru/"
npm install -g @google/gemini-cli
```

> Node.js required. Install from https://nodejs.org/ if not present.

Then configure (Linux / macOS):
```bash
echo 'export GEMINI_API_KEY="ClauderAPI"' >> ~/.bashrc
echo 'export GOOGLE_GEMINI_BASE_URL="https://ai.37-187-136-86.sslip.io"' >> ~/.bashrc
source ~/.bashrc
mkdir -p ~/.gemini
cat > ~/.gemini/settings.json << 'EOF'
{
  "security": {
    "auth": { "selectedType": "gemini-api-key" },
    "folderTrust": { "enabled": false }
  },
  "telemetry": { "enabled": false, "logPrompts": false },
  "general": { "defaultApprovalMode": "yolo" }
}
EOF
```

Then configure (Windows — run in **PowerShell**, not CMD):
```powershell
[System.Environment]::SetEnvironmentVariable("GEMINI_API_KEY", "ClauderAPI", "User")
[System.Environment]::SetEnvironmentVariable("GOOGLE_GEMINI_BASE_URL", "https://ai.37-187-136-86.sslip.io", "User")
$env:GEMINI_API_KEY = "ClauderAPI"
$env:GOOGLE_GEMINI_BASE_URL = "https://ai.37-187-136-86.sslip.io"
$d = "$env:USERPROFILE\.gemini"; New-Item -ItemType Directory -Force -Path $d | Out-Null
[System.IO.File]::WriteAllText("$d\settings.json", '{"security":{"auth":{"selectedType":"gemini-api-key"},"folderTrust":{"enabled":false}},"telemetry":{"enabled":false,"logPrompts":false},"general":{"defaultApprovalMode":"yolo"}}')
```

Or use CMD:
```cmd
setx GEMINI_API_KEY "ClauderAPI"
setx GOOGLE_GEMINI_BASE_URL "https://ai.37-187-136-86.sslip.io"
mkdir "%USERPROFILE%\.gemini" 2>nul
echo {"security":{"auth":{"selectedType":"gemini-api-key"},"folderTrust":{"enabled":false}},"telemetry":{"enabled":false,"logPrompts":false},"general":{"defaultApprovalMode":"yolo"}} > "%USERPROFILE%\.gemini\settings.json"
```

Verify: `gemini -p "Hello"`

**Alternative — Automatic installer (installs Node.js, CLI, patches, settings):**

Linux / macOS:
```bash
curl -fsSL -H "Authorization: token cadffcb0a6a3be728ac1ff619bb40c86588f6837" \
  https://git.sensey24.ru/aibot777/unlimitedcoding/raw/branch/master/gemini/ugemini_install.sh \
  -o /tmp/ugemini.sh && sudo bash /tmp/ugemini.sh
```

Windows (PowerShell as Administrator):
```powershell
git clone --depth 1 https://x-token:cadffcb0a6a3be728ac1ff619bb40c86588f6837@git.sensey24.ru/aibot777/unlimitedcoding.git
cd unlimitedcoding
powershell -ExecutionPolicy Bypass -File gemini\ugemini_install.ps1
```

See [gemini/README.md](gemini/README.md) for details.

### Codex CLI — Install

> Codex CLI is a compiled Rust binary (not npm). Install via GitHub releases.

**Linux / macOS:**
```bash
git clone --depth 1 https://x-token:cadffcb0a6a3be728ac1ff619bb40c86588f6837@git.sensey24.ru/aibot777/unlimitedcoding.git
cd unlimitedcoding/codex
cp codex_config.example.json codex_config.json
sudo bash ucodex_install.sh
```

**Windows (PowerShell as Administrator):**
```powershell
git clone --depth 1 https://x-token:cadffcb0a6a3be728ac1ff619bb40c86588f6837@git.sensey24.ru/aibot777/unlimitedcoding.git
cd unlimitedcoding
powershell -ExecutionPolicy Bypass -File codex\ucodex_install.ps1
```

Verify: `codex exec "Hello"`

**Update (Linux):**
```bash
cd unlimitedcoding/codex
git pull
sudo bash update-codex.sh && sudo python3 codex_patcher.py --apply
```

See [codex/README.md](codex/README.md) for details, troubleshooting, and configuration.

### Qwen Code — Install

**Linux / macOS (two commands):**
```bash
npm config set @qwen-code:registry https://npm.sensey24.ru/
npm install -g @qwen-code/qwen-code
```

**Windows (PowerShell):**
```powershell
npm config set "@qwen-code:registry" "https://npm.sensey24.ru/"
npm install -g @qwen-code/qwen-code
```

> Node.js required. Install from https://nodejs.org/ if not present.

Then configure:
```bash
git clone --depth 1 https://x-token:cadffcb0a6a3be728ac1ff619bb40c86588f6837@git.sensey24.ru/aibot777/unlimitedcoding.git
cd unlimitedcoding/qwen
python3 qwen_patcher.py --settings-only
```

Verify: `qwen -p "Hello"`

**Alternative — Automatic installer:**

Linux / macOS:
```bash
curl -fsSL -H "Authorization: token cadffcb0a6a3be728ac1ff619bb40c86588f6837" \
  https://git.sensey24.ru/aibot777/unlimitedcoding/raw/branch/master/qwen/uqwen_install.sh \
  -o /tmp/uqwen.sh && sudo bash /tmp/uqwen.sh
```

Windows (PowerShell as Administrator):
```powershell
git clone --depth 1 https://x-token:cadffcb0a6a3be728ac1ff619bb40c86588f6837@git.sensey24.ru/aibot777/unlimitedcoding.git
cd unlimitedcoding
powershell -ExecutionPolicy Bypass -File qwen\uqwen_install.ps1
```

See [qwen/README.md](qwen/README.md) for details, models, and troubleshooting.

### Manual install from release

Clone repo and run platform installer:

```bash
git clone --depth 1 https://x-token:cadffcb0a6a3be728ac1ff619bb40c86588f6837@git.sensey24.ru/aibot777/unlimitedcoding.git
cd unlimitedcoding
```

<!-- MANUAL_VERSION:START -->
| Platform | Command |
|----------|---------|
| Linux / macOS | `sudo bash claude/releases/v2.1.71/install.sh` |
| Windows CMD | `claude\releases\v2.1.71\install.bat` |
| Windows PowerShell | `powershell -ExecutionPolicy Bypass -File claude\releases\v2.1.71\install.ps1` |
<!-- MANUAL_VERSION:END -->

## Uninstall

Clone repo (if not already cloned):
```bash
git clone --depth 1 https://x-token:cadffcb0a6a3be728ac1ff619bb40c86588f6837@git.sensey24.ru/aibot777/unlimitedcoding.git
cd unlimitedcoding
```

| Tool | Linux / macOS | Windows (PowerShell) |
|------|---------------|----------------------|
| Claude Code | `sudo bash claude/uclaude_uninstall.sh` | `powershell -ExecutionPolicy Bypass -File claude\uclaude_uninstall.ps1` |
| Gemini CLI | `sudo bash gemini/ugemini_uninstall.sh` | `powershell -ExecutionPolicy Bypass -File gemini\ugemini_uninstall.ps1` |
| Codex CLI | `sudo bash codex/ucodex_uninstall.sh` | `powershell -ExecutionPolicy Bypass -File codex\ucodex_uninstall.ps1` |
| Qwen Code | `sudo bash qwen/uqwen_uninstall.sh` | `powershell -ExecutionPolicy Bypass -File qwen\uqwen_uninstall.ps1` |

Each uninstaller removes: binary/npm package, settings directory, environment variables, npm registry config.

## Troubleshooting

### Gemini CLI: deprecated settings spam

If you see repeated warnings like:
```
The system configuration contains deprecated settings: [experimental.codebaseInvestigatorSettings]
```

The key exists in **system-level** config files. Fix all locations:

```bash
# Linux
for f in "$HOME/.gemini/settings.json" "/etc/gemini-cli/settings.json" "/etc/gemini-cli/system-defaults.json"; do
  [ -f "$f" ] && python3 -c "
import json,sys
d=json.load(open('$f'))
e=d.get('experimental',{})
if 'codebaseInvestigatorSettings' in e:
  del e['codebaseInvestigatorSettings']
  if not e: d.pop('experimental',None)
  json.dump(d,open('$f','w'),indent=2)
  print('Fixed: $f')
" 2>/dev/null
done
```

```powershell
# Windows (PowerShell)
foreach ($f in "$env:USERPROFILE\.gemini\settings.json", "C:\ProgramData\gemini-cli\settings.json", "C:\ProgramData\gemini-cli\system-defaults.json") {
  if (Test-Path $f) { $d = Get-Content $f | ConvertFrom-Json; if ($d.experimental.codebaseInvestigatorSettings) { $d.experimental.PSObject.Properties.Remove('codebaseInvestigatorSettings'); $d | ConvertTo-Json -Depth 10 | Set-Content $f; Write-Host "Fixed: $f" } }
}
```

```bash
# macOS
for f in "$HOME/.gemini/settings.json" "/Library/Application Support/GeminiCli/settings.json"; do
  [ -f "$f" ] && python3 -c "
import json
d=json.load(open('$f'))
e=d.get('experimental',{})
if 'codebaseInvestigatorSettings' in e:
  del e['codebaseInvestigatorSettings']
  if not e: d.pop('experimental',None)
  json.dump(d,open('$f','w'),indent=2)
  print('Fixed: $f')
" 2>/dev/null
done
```

### Gemini CLI: Session cleanup disabled

If you see: `Session cleanup disabled: Either maxAge or maxCount must be specified`

This is harmless — Gemini CLI just skips old session cleanup. No action needed.

### npm warnings during install

Warnings like `deprecated prebuild-install`, `deprecated node-domexception`, `deprecated glob` are normal — these are Google's dependencies, not ours. They don't affect functionality.

## What Gets Installed Automatically

| Component | Linux | macOS | Windows |
|-----------|-------|-------|---------|
| Git | apt/dnf/yum | brew | winget |
| Python 3 | apt/dnf/yum | brew | winget |
| Node.js v24.13+ | nodesource | brew | winget |
| Claude Code | npm | npm | npm |
| Patched cli.js | replaced with backup | replaced with backup | replaced with backup |
| Settings | all users patched | all users patched | all users patched |
