Skip to content

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/models endpoint, or declare them explicitly.
  • Reasoning control: Per-model reasoning settings and /effort in 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 picker
    • Ctrl+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.