WebCodex

Self-hosted runtime that gives remote AI clients coding tools on repositories kept on your own machines

By jialin (individual) Rust Developer toolsGit and code hosting

72 popularity score ★ 2.5k ↓ 438/wk

What it does

WebCodex lets ChatGPT, Claude or another MCP client work on code that stays on your own computer. It has two parts: a Server that checks credentials and exposes an HTTPS MCP endpoint, and a Runner on the machine that holds the repository. The client sends tool calls to the Server, which passes them to the Runner; the Runner reads and edits files, runs builds, tests and shell commands, and uses Git in the registered project folder.

There are two ways to use it. `webcodex share`, run from inside a repository, starts a temporary single-project Server and Runner, opens a public HTTPS address through a Cloudflare Quick Tunnel by default, and prints the MCP URL and a one-off credential; both stop working when the command exits. For daily use the project recommends a long-lived Server plus one or more Runners, with a one-time login and project registration, and a Desktop app for managing it.

The tool surface is large. At the v0.4.6 tag the tool contract files define 183 tools across files, edits, Git, jobs and shell, validation (cargo, go test), language-server navigation, memory, skills, goals, sessions, checkpoints and agent messaging. Only 17 of them are marked as direct tools; the rest are found with `tool_manifest` and called through the `call_runtime_tool` gateway, so a client's tool list shows far fewer than the server can do (tool_definition/*.rs at v0.4.6).

What it needs

Node.js 18 or newer to run the npm package, which downloads native binaries for Linux, macOS or Windows (x64 or arm64). Git and a local repository. An MCP client that can add a remote HTTPS server with a Bearer token, or a URL with a token. ChatGPT needs Developer Mode and a plan or workspace that allows custom MCP apps. The default share tunnel needs a cloudflared binary; on Windows ARM64 you supply it yourself.

Limits

There is no stdio mode: the server is reached only over HTTP at the URL the CLI prints, so you add it to a client as a remote connector and not as a launch command. A `share` session covers one project and ends when the terminal closes. The project says its unified desktop and package installers are still in development and not yet validated; v0.4.6 is the stable release while v0.5 release candidates exist, and `main` documents unreleased behaviour. `read_files` reads one to eight files per call and `search_project_texts` takes one to eight queries. Which tools a client sees depends on the token's scopes, the client and Runner policy.

Who it suits

It suits a developer who wants a cloud chat assistant such as ChatGPT or Claude to edit, build and test a real local checkout instead of a hosted sandbox, and who is willing to run a Server and Runner and register project folders. It is a poor fit if you want a simple stdio server for a local desktop client, or if you do not want commands from a remote model to run under your own OS account. In that case a plain file-system or Git server with fewer tools is a better choice. The temporary `share` mode lets you try it on one repository before setting up the persistent install.

Tools 24 of 183

work_on_project
Start or resume a work session on a registered project, optionally in a separate worktree
read_files
Read line ranges from one to eight project files, with file hashes
search_project_texts
Run one to eight text searches across the project, using ripgrep where available
edit_project_files
Apply structured edits to project files
present_work_result
Publish a summary card of the work done so far
finish_coding_task
Close a coding task and produce review evidence
run_process
Run a program with arguments in the project
run_shell
Run a shell command in the project under the Runner's account
run_script
Run a script in the project
run_job
Start a long-running command as a background job
observe_jobs
Check status and output of running jobs
wait_for_job_readiness
Wait until a background job reports it is ready
list_jobs
List jobs for the project
stop_job
Stop a running job
project_build
Build the project with its detected toolchain
project_validate
Run the project's validation checks such as format and tests
cargo_fmt
Format Rust code with cargo fmt
go_test
Run Go tests
git_status
Show the repository's Git status
git_diff_hunks
Show changed hunks in the working tree
git_log
Show recent commit history
git_commit_paths
Commit chosen paths to Git
review_changes
Summarise current changes for review
call_runtime_tool
Call one of the tools that is not exposed directly

Similar servers