# dsc **Repository Path**: ppnt/dsc ## Basic Information - **Project Name**: dsc - **Description**: DSC is a separate launcher for your installed Codex CLI, based on CX. It is intended for manually selecting DeepSeek models through a Responses-compatible proxy such as `java-llm-proxy`. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-16 - **Last Updated**: 2026-10-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DSC DSC is a separate launcher for your installed Codex CLI, based on CX. It is intended for manually selecting DeepSeek models through a Responses-compatible proxy such as `java-llm-proxy`. DSC keeps its **model, reasoning settings, provider, endpoint, model catalog and credentials independent** from Codex and CX, including named profiles. Sessions, skills, plugins, instructions and general preferences are shared with the original Codex home. Resuming a shared conversation sends its context to the provider you select. ## Install ```powershell npm ci powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 ``` Open a new terminal afterward. Installation creates `%USERPROFILE%\.dsc\bin\dsc.cmd` and adds it to the user PATH. It reuses the installed Codex runtime without copying its credentials. The source directory must remain available because the installed command points to `dsc.mjs`. Installer options: `-DscDirectory`, `-SharedHome`, `-SqliteHome`, `-CodexEntry`, `-NoPath`. For a custom DSC directory, set `DSC_HOME` consistently for the launcher and GUI. Both homes must be on the same NTFS volume for shared file hard links. ## Configure a model manually First configure your DeepSeek upstream in java-llm-proxy. Use the exact model ID exposed by its model list: ```powershell dsc --dsc-config --model deepseek-chat --base-url http://127.0.0.1:8317/tools/dsc/v1 $env:DSC_API_KEY = 'YOUR_PROXY_API_KEY' dsc ``` `deepseek-chat` is an example, not a discovered or guaranteed model ID. The API key above belongs to the local proxy; the upstream DeepSeek credential stays in the proxy configuration. The environment variable applies to this terminal and its children. To use another environment variable, pass `--api-key-env NAME`. No key is printed or embedded by the configuration command. The launcher uses **Responses**. A Chat Completions-only endpoint cannot be used directly with this setup; use the project's protocol adapter or another Responses-compatible endpoint. Alternatively edit `%USERPROFILE%\.dsc\config.toml`: ```toml model = "deepseek-chat" model_provider = "dsc_manual" cli_auth_credentials_store = "file" [model_providers.dsc_manual] name = "DSC manual provider" base_url = "http://127.0.0.1:8317/tools/dsc/v1" wire_api = "responses" env_key = "DSC_API_KEY" requires_openai_auth = false ``` `--dsc-config` backs up an existing configuration before updating it. It retains other providers and general settings, clears a previously selected profile/catalog so they cannot override the manual model, and never modifies `auth.json` or the Codex/CX configuration. ## GUI integration In java-llm-proxy, open **Agent Configuration → DSC** to select a proxy model, apply configuration, create a template, restore backups, or launch the CLI. DSC uses `/tools/dsc/v1`, with its own model aliases and credential file. Applying GUI configuration intentionally selects the GUI-managed provider instead of your manual provider. Removing the managed configuration restores the backed-up settings. ## Commands and storage ```powershell dsc --version dsc --dsc-info dsc resume --all ``` Configuration, authentication, launcher metadata and daemon state stay in `.dsc`. Shared directories use junctions; root history/index files use hard links. The launcher repairs replaced root links with backups under `.dsc-sharing-backups`. It changes `CODEX_HOME` only for the child process. The upstream UI/version still identifies itself as Codex. Do not recursively delete shared directory targets to uninstall DSC. Project-local configuration and explicit command-line overrides still follow the installed Codex runtime's rules. ## Tests ```powershell npm test ``` Tests use temporary homes and a stub runtime. They cover shared data, isolated models/providers/auth, manual configuration validation, argument forwarding and exit codes without sending inference requests.