Cheap Labor
Аннотация
Cheap Labor существует потому, что использование Codex — это ограниченный пул — и большая часть того, что делает кодинг-агент, — это не написание кода. Чтение файлов, исследование репозитория, планирование и ревью диффов — всё это сжигает лимит Codex, не написав ни строчки кода.
Затем пришло ключевое осознание: использование ChatGPT и Codex учитывается отдельно — два независимых лимита. Поэтому мы решили разделить работу: ChatGPT выполняет всё мышление за свой счёт, а Codex тратится только на реальную реализацию.
В этом вся идея — локальный MCP-сервер, соединённый через Secure MCP Tunnel: ChatGPT в вебе управляет Codex CLI на вашей машине, работающим с вашим локальным репозиторием, по одному триггеру @cheap-labor.
Технологии
Cheap Labor построен на намеренно небольшом, кроссплатформенном стеке:
Среда выполнения: Node.js (>= 20) — среда выполнения мостового сервера
Язык: TypeScript — весь код моста
Протокол: MCP SDK (
@modelcontextprotocol/sdk) — stdio MCP-сервер + клиентВалидация: zod — схемы аргументов инструментов
Исполнитель: Codex CLI (
codex mcp-server) — порождаемый дочерний MCP-клиент для исследования и реализацииПодключение: Secure MCP Tunnel (
tunnel-client) — приватный, только исходящий канал между ChatGPT web и локальным сервером
Related MCP server: Kontrol
Предварительные требования
macOS или Linux с Node.js >= 20 + npm
git
Платная учётная запись ChatGPT с режимом разработчика
Codex CLI, выполнен вход (
codex login)tunnel-client— устанавливается во время настройки: macOS через Homebrew; Linux через релизы GitHub (бинарьlinux-amd64/arm64) в вашем PATHSecure MCP Tunnel + runtime API key с платформы OpenAI (установщик укажет вам нужные страницы)
Установка
Перейти к: 1. Клонирование и установка → 2. Использование
Клонируйте репозиторий и перейдите в него:
git clone https://github.com/psrisuphan/cheap-labor.git cd cheap-laborЗапустите установщик — он установит зависимости, соберёт мост, запишет ваш профиль туннеля, проверит все 23 инструмента и проведёт вас через подключение приложения к ChatGPT web:
./scripts/install.sh
Использование
Запустите туннель — держите его включённым, пока пользуетесь cheap-labor:
./scripts/tunnel.sh start # stop: ./scripts/tunnel.sh stopОткройте новый чат ChatGPT и введите
@cheap-labor— то же имя приложения, которое вы добавили из меню инструментов, — затем укажите проект.Подтвердите каталог проекта, когда вас спросят — сессия активирована.
Удаление
./scripts/uninstall.shУдаляет всё, до чего может дотянуться скрипт: устаревшую регистрацию MCP, демон туннеля, состояние .codex-bridge/ в каждом инициализированном проекте, профиль туннеля и сохранённый API-ключ, а также артефакты сборки. Три запроса (нажмите Enter для рекомендуемого ответа, n — чтобы оставить). После этого выводится руководство по ручной очистке для того, до чего можете дотянуться только вы: подключение приложения ChatGPT, туннель Platform, runtime API key и папка проекта.
Как это работает
Мост находится в спящем режиме, пока не активирован. В спящем режиме сервер отдаёт только двухстрочное уведомление «игнорируйте эти инструменты» в качестве своих instructions, поэтому несвязанные запросы обрабатываются без того, чтобы мост вообще рассматривался. Полные правила рабочего процесса находятся в возвращаемом payload инструмента init и попадают в разговор только после активации.
Триггер — это сам вызов — никакого мониторинга промптов, никакого синтаксиса тегов, никакого сканирования фраз:
Пользователь вызывает cheap-labor, вводя
@cheap-labor. Это единственный триггер.ChatGPT спрашивает, какой проект вам нужен, разрешает его (
find_projectsдля нечётких имён,create_projectдля новых каталогов), подтверждает точный путь с вами, затем активирует сессию —init(project)(илиcreate_projectнапрямую для совершенно нового каталога) и получаетsession_token.Каждый другой инструмент отказывается работать без действительного
session_token— жёсткая подстраховка, которая также блокирует случайное использование вне рабочего процесса.
Рабочий процесс
Активируйте сессию —
@cheap-labor+ подтвердите проект →initвозвращает токен.Поймите —
git_status,list_tree,read_file,grep(всё бесплатно).Спланируйте детально — ChatGPT записывает
PLAN.md/SPEC.md/TASKS.mdв папку.codex-bridge/репозитория с помощьюplan_write. План — это точные пошаговые инструкции: какие файлы создать/отредактировать, каким должно быть каждое изменение, какие команды выполнить и как проверить.Мелкие правки, сделанные напрямую —
write_file/edit_fileобрабатывают изменения в одном файле бесплатно.Делегируйте тяжёлую работу —
implementпередаёт план Codex, который буквально выполняет шаги, запускает сборки/тесты, чинит то, что сломалось, и возвращаетIMPLEMENTATION COMPLETE.Ревью — ChatGPT читает возвращённый
git diffи отправляет точечные исправления обратно через тот же цикл.
Возможности
Активация одним триггером:
@cheap-laborв любом чате ChatGPT — единственный триггер; мост остаётся в спящем режиме (ноль внимания модели), пока его не вызовут — никакого мониторинга промптов, никакого синтаксиса тегов, никакого сканирования фраз.Выполнение с гейтом риска: команды классифицируются как read-only или рискованные; рискованная работа проходит через авто-ревью Codex и ваше вето.
Встроенные предохранители: ограничение путей проекта, редактирование секретов, контрольные точки перед каждым тяжёлым запуском и только локальные коммиты, которые никогда не пушатся.
Кроссплатформенность: macOS и Linux, без публичных портов, только исходящий туннель.
Справочник по инструментам
Бесплатные инструменты моста (детерминированный локальный ввод-вывод, без затрат Codex):
Инструмент | Назначение |
| Активировать сессию для проекта (единственная точка входа); возвращает |
| Структура каталогов, с ограничением глубины |
| Содержимое файла, с диапазоном строк, ограничением размера, секреты редактируются |
| Регулярный поиск с глобами включения/исключения |
| Состояние репозитория + цикл ревью (неотслеживаемые файлы отображаются) |
| Команды проверки с гейтом риска (тесты, сборка) |
| Создать новый файл напрямую (отказывается перезаписывать) |
| Точечное редактирование существующего файла (защита от устаревшего содержимого) |
| Пакетные правки/записи, всё или ничего (без частичного состояния) |
| Снимок HEAD + рабочего дерева для отката (автоматически перед |
| Восстановление до контрольной точки (подтверждается пользователем; само откатываемо) |
| Индексация + локальный коммит с одобренным пользователем сообщением (никогда не пушит) |
| Список записанных контрольных точек |
| Разрешение нечётких имён в кандидатные пути (неглубоко, в известных местах) |
| Создание нового каталога проекта (без git init); возвращает |
| Управление файлами передачи |
Инструменты на базе Codex (тратят пул Codex):
Инструмент | Назначение |
| Сессия Codex только для чтения для вопросов, на которые не могут ответить бесплатные инструменты |
| Codex с правами записи в рабочую область по текущему плану; возвращает сводку + |
| Продолжение сессии по thread id (цикл вето на подтверждения, последующие запросы) |
Модель безопасности
implement/deep_exploreвсегда передают явную песочницу (workspace-write/read-only) — никогдаdanger-full-access.Фиксированная модель Codex — каждый вызов Codex закрепляет
gpt-5.6-lunaс рассуждениямиmediumи выключенным Fast Mode, передаваемыми как переопределения в каждом вызове. Мост никогда не пишет в~/.codex/config.toml. Единственное исключение:deep_exploreпринимает более мощную модель, но только после того, как вы подтвердите изменение в чате.Автоматически безопасные подтверждения — подтверждения shell-команд Codex отображаются как MCP-elicitation: команды только для чтения подтверждаются автоматически; всё рискованное (запись, сеть, изменения в git) отклоняется и протоколируется, чтобы ChatGPT передал это вам для наложения вето. Вето выполняется через
codex_reply.run_commandзапускает исполняемые файлы напрямую (без shell). Рискованные команды передаются на автоматическую проверку Codex — полный доступ никогда не предоставляется, ничто рискованное не запускается без запроса.write_fileтолько создаёт новые файлы;edit_fileредактирует только существующие с помощью замены по точному совпадению (устаревшие или неоднозначные совпадения ничего не записывают);edit_packвыполняет операции пакетно — всё или ничего. Все они ограничивают размер и отклоняют бинарные файлы.Режим выпуска —
checkpointсоздаёт снимок HEAD + рабочего дерева (снимок автоматически делается перед каждымimplement);rollbackвосстанавливает контрольную точку (это действие также можно отменить);git_commitвыполняет локальный коммит с сообщением, одобренным пользователем. Push/pull/reset/rebase/checkout никогда не предоставляются.Инструменты моста отклоняют пути за пределами одобренной в сессии директории проекта.
read_file/git_diffпо умолчанию маскируют известные секретные паттерны.
Структура проекта
cheap-labor/
├── assets/ # Logo / icons
├── scripts/ # Installer, uninstaller, tunnel control, setup
│ ├── install.sh # All-in-one installer
│ ├── uninstall.sh # Clean uninstaller
│ ├── tunnel-setup.sh # Writes the tunnel-client profile
│ ├── tunnel.sh # start / stop / restart / status / logs the tunnel daemon
│ └── setup.mjs # Prerequisite check
├── src/ # Bridge MCP server
│ ├── index.ts # Server entry, tool registration, server instructions
│ ├── safety.ts # Project scoping, redaction, risk classification
│ ├── projects.ts # Session approvals, ledger, find/create
│ ├── planstore.ts # .codex-bridge/ I/O
│ ├── approvals.ts # Auto-safe policy
│ └── tools/ # context, command, codexCommand, codex, deepExplore,
│ # implement, edit, plans, ship
├── tests/ # Node test suite
├── dist/ # Build output (gitignored)
└── package.jsonТестирование
Чтобы запустить наборы модульных тестов:
npm run typecheck # tsc --noEmit
npm test # node --test (tsx)Локальные данные и журналы
Cheap Labor хранит профиль туннеля, runtime API-ключ и журналы демона локально, вне директории проекта:
macOS / Linux:
~/.config/tunnel-client/
Внутри этой директории вы найдёте:
cheap-labor.yaml— профильtunnel-client(содержит идентификатор туннеля).cheap-labor.key— runtime API-ключ, chmod 600, никогда не коммитится.cheap-labor.log— журнал демона туннеля.
Планы и файлы передачи (handoff) записываются в папку .codex-bridge/ каждого проекта во время выполнения (игнорируется git). Конфигурация и аутентификация самого Codex находятся в ~/.codex/.
Лицензия
Этот проект распространяется по лицензии MIT. Полный текст лицензии приведён в файле LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityAmaintenanceAn MCP server that provides AI coding agents with AST-accurate, context-budget-aware codebase querying, safety gates, and team policy integration via structured tools and a local plugin layer.5724MIT
- Alicense-qualityBmaintenanceA self-hosted MCP server that enables AI coding agents to read, edit, search, and run code in local projects with human review loops and policy controls.MIT
- AlicenseAqualityAmaintenanceMCP server that enables a coordinator AI agent to spawn, control, and supervise local coding agents with interactive gating for high-risk operations.10381MIT
- Alicense-qualityCmaintenanceLocal MCP server enabling Codex and ChatGPT to read/write files, execute commands, manage processes, use Git, and inspect images on the user's machine with full privileges.Apache 2.0
Related MCP Connectors
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
An MCP server that gives your AI access to the source code and docs of all public github repos
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/psrisuphan/cheap-labor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server