A local Codex-native runtime for DeepSeek V4, built for real agent work rather than plain API forwarding.

Unofficial and unaffiliated. Use your own credentials and follow the applicable Codex, OpenAI, DeepSeek, Vision, and search-provider terms.
CodeSeeX connects Codex Desktop to DeepSeek-compatible upstreams through a local /v1 adapter. Its role is not just to translate one HTTP API into another. CodeSeeX sits at the agent boundary where Codex requests, tool calls, context replay, reasoning behavior, web search, local file operations, usage accounting, and desktop management all meet.
The project targets a specific gap in the current AI tooling market:
Current version: 0.5.3
Codex Desktop -> CodeSeeX local agent runtime -> DeepSeek-compatible upstream
|
+-> Codex tools, web search, usage, diagnostics, desktop manager
Running a non-native upstream behind Codex is easy to make work once. It is much harder to make it behave like a stable Codex agent over long sessions, tool loops, large repositories, background service requests, and repeated file edits.
CodeSeeX focuses on that hard part:
Direct relay tools usually forward request bodies, map model names, and pass responses back. That is useful, but it leaves important Codex agent behavior unresolved.
CodeSeeX adds a runtime layer around the relay:
| Area | Direct API relay | CodeSeeX |
|---|---|---|
| Request semantics | Mostly forwards chat/responses payloads | Classifies Codex user turns, service requests, compact/replay state, and client tool handoffs |
| Tools | Often passes tool schemas through | Owns CodeSeeX tools, preserves Codex-native client tools, bridges deferred tool discovery, and records tool lifecycle |
| Context | Sends whatever the client sends | Compiles context, keeps verified tool facts, avoids duplicating full Codex transcripts, and bounds replay data |
| DeepSeek behavior | Treats output as model text | Adapts DeepSeek-specific thinking/tool protocol behavior at the provider boundary |
| Usage | Flat upstream request log | Groups billable requests into user sessions, service requests, handoff phases, and tool-loop segments |
| Desktop UX | Usually external config files | Tauri manager with status, logs, usage, settings, adapter TOML, update checks, balance, and tray controls |
| Safety | Depends on upstream/client | Adds local/private target protection, bounded tool output, diagnostic redaction, and explicit community-tool trust boundaries |
The result is a tool for people who want DeepSeek inside Codex without giving up the operational behavior that makes Codex useful as an agent.
deepseek-v4-pro and deepseek-v4-flash.model_catalog_json and local base_url.~/.codeseex/extension/tools/<tool>/manifest.json, disabled by default and executed only through explicit command manifests.The gallery below uses English UI sample data and real CodeSeeX/Codex screens.
Usage Sessions
Conversation-level cost, latency, cache hit rate, service requests, and expandable stages.
|
Safe Diagnostic Logs
Request, tool, context, protocol, and network events without exposing prompt payloads by default.
|
Tool Settings
Built-in workspace tools, Web Search, Vision endpoints, and tool-specific credentials.
|
Generated Codex TOML
Machine-specific `model_catalog_json`, local `/v1` endpoint, and DeepSeek model settings.
|
Codex Session
DeepSeek-powered Codex session with thinking, tool-capable workflow, and local CodeSeeX routing.
|
Vision Example
Optional Vision module used from Codex through the CodeSeeX tool runtime.
|
Settings -> Proxy and confirm the local service is running on the default port 8787.deepseek-v4-pro or deepseek-v4-flash in Codex.Prefer the generated TOML because the catalog path and local port are machine-specific.
model_provider = "custom"
model = "deepseek-v4-pro"
disable_response_storage = true
model_reasoning_effort = "xhigh"
# CodeSeeX adds a machine-specific model_catalog_json path in the generated TOML.
[model_providers.custom]
name = "DeepSeek"
wire_api = "responses"
requires_openai_auth = true
base_url = "http://127.0.0.1:8787/v1"
To use the faster model, change:
model = "deepseek-v4-flash"
The desktop app is the control plane for the local runtime:
The proxy is still the core service. Once running, the desktop UI should not be required for Codex requests to continue flowing.
CodeSeeX treats tools as part of the agent runtime, not as incidental function calls.
Community tools are local command executors. They are disabled by default. Enabling one means you trust the command declared by its manifest.
Codex owns the conversation transcript. CodeSeeX keeps only the bridge state needed to complete current requests and explain runtime behavior.
CodeSeeX is careful about:
This matters because a direct relay can appear to work while silently resending large context, duplicating tool output, misclassifying background service calls, or making one small user task look like many unrelated billable API calls.
CodeSeeX exposes deepseek-v4-pro and deepseek-v4-flash to Codex through its generated catalog. Leave the upstream URL blank to use the default DeepSeek-compatible upstream, or set a custom OpenAI-compatible upstream URL in Settings -> Proxy.
The local Codex endpoint remains under http://127.0.0.1:8787/v1 by default. If you change the listen port, copy the generated TOML again and restart Codex.
The Vision module is optional and configurable from the desktop Tools settings. Configure full request URLs, model names, and an API key for the endpoints you want to use:
/responses or /chat/completions./responses with image generation support or /images/generations.input_image attachments, HTTP(S) URL, data:image URL, file:// URL, workspace path, or permitted local absolute path.CodeSeeX does not rewrite Vision endpoint URLs. The request URL you configure is the request URL that will be used. When a local image is analyzed through a remote endpoint, the image pixels are sent to that configured service.
On Windows, use the NSIS Windows-CodeSeeX.Setup.*.exe installer for normal desktop installs and updates. It supports installer language selection, current-user or all-users install mode, and migration from the earlier Electron build by uninstalling the legacy app before installing the Tauri build.
CodeSeeX manager settings are not intended to be upstream credential storage. Balance checks read the direct Codex auth source or a cached request Authorization: Bearer ... header. A legacy DEEPSEEK_API_KEY environment value can still act as a fallback for direct upstream requests, but it is not the balance credential source.
Tool-specific credentials, such as Vision credentials, belong to the configured tool endpoint and should be treated as local secrets. Do not enable community tools unless you trust their command manifests.
CodeSeeX is a local bridge, but model requests are forwarded to the configured upstream service. Vision analysis sends image pixels to the configured Vision endpoint. Web Search may request search-result pages or regular web pages from third-party websites. Those services may apply their own terms, retention policies, rate limits, and anti-abuse rules.
Default logs are compact and redacted. Development diagnostics can expose more request-shape information and should only be enabled when needed for debugging.
CodeSeeX uses the normal release data directory:
~/.codeseex/
config.toml
model-catalog.json
logs/
extension/tools/
secrets/
The store keeps current-process bridge state, bounded logs, explicit compact payload material, usage summaries, and diagnostics. It is not a replacement for Codex's own transcript storage.
$ claude mcp add CodeSeeX \
-- python -m otcore.mcp_server <graph>