jcode
jcode is an open-source terminal coding agent available at jcode.sh. It provides an interactive TUI and a scriptable CLI for repository analysis, code changes, and tool-driven development workflows.
jcode has a dedicated openai-compatible provider type. Connected to our Swiss-hosted Everyware AI API, your prompts and source code stay within our Swiss GPU infrastructure.
Key Features
- Terminal-first TUI: Interactive coding directly in the project directory.
- Custom providers: Named provider profiles for OpenAI-compatible endpoints.
- Model catalog: Fetch available models from the gateway's
/v1/modelsendpoint, or declare them explicitly. - Reasoning control: Per-model reasoning settings and
/effortin the TUI. - Full data sovereignty: All model requests are routed through our Swiss Everyware AI API.
Installation
curl -fsSL https://jcode.sh/install | bash
brew tap 1jehuang/jcode
brew install jcode
Verify the installation:
jcode --version
Configuration
1. Save API Key
Store the virtual API key in jcode's private provider environment file:
mkdir -p ~/.config/jcode
printf 'JCODE_PROVIDER_EW_API_KEY=sk-bf-...\n' > ~/.config/jcode/provider-ew.env
chmod 600 ~/.config/jcode/provider-ew.env
2. Register the Gateway
Create or edit ~/.jcode/config.toml:
[provider]
default_provider = "ew"
default_model = "flagship"
[providers.ew]
type = "openai-compatible"
base_url = "https://ai.ewcs.ch/v1"
auth = "bearer"
api_key_env = "JCODE_PROVIDER_EW_API_KEY"
env_file = "provider-ew.env"
default_model = "flagship"
requires_api_key = true
supports_reasoning_effort = true
[[providers.ew.models]]
id = "flagship"
context_window = 1048576
reasoning = true
[[providers.ew.models]]
id = "balanced"
context_window = 1000000
reasoning = true
[[providers.ew.models]]
id = "fast"
context_window = 262144
reasoning = true
The profile name ew combined with the model IDs produces the selectors ew/flagship, ew/balanced, and ew/fast.
Reasoning effort
jcode auto-detects reasoning support from the model family name. Since the gateway model names (flagship, balanced, fast) are neutral, set supports_reasoning_effort = true explicitly so /effort is sent as reasoning_effort.
3. Alternative: Generate the Profile via CLI
printf '%s' "$EW_AI_API_KEY" | jcode provider add ew \
--base-url https://ai.ewcs.ch/v1 \
--model flagship \
--context-window 1048576 \
--api-key-stdin \
--set-default
Additional models can then be added under [[providers.ew.models]] in config.toml.
4. Verify and Start
cd /path/to/project
jcode --provider-profile ew auth-test
jcode --provider-profile ew
Typical Commands and Workflows
- Start interactively:
jcode - Select profile and model at startup:
jcode --provider-profile ew --model balanced - In the TUI:
/model– open the model pickerCtrl+Tab/Ctrl+Shift+Tab– next / previous model/effort– change the reasoning level
- One-shot prompt:
jcode run "Explain the architecture of this repository."
Model limits
jcode exposes context_window per model but no separate output-token limit; output length is managed by the agent. If a model is not declared, jcode falls back to a 200,000-token context — declare the limits explicitly as shown above.