1jehuang/jcodePublic

The most RAM efficient harness

AI summary: An extremely memory-efficient, intelligent terminal harness and AI coding assistant.

Stars
16.3K
+137 today
Forks
1.8K
Watchers
86
Open issues
210
Open PRs
4
Contributors
~13
Commits
6.7K
Branches
38

RustMITCreated Jan 5, 2026Last push todayLatest release v0.67.1+1.7K stars this week+4.4K this month

Star history

since Feb 15, 2026
05K10K15KFeb 2026Apr 2026Jun 2026Aug 2026
16.3K stars as of Aug 7, 2026, tracked back to Feb 15, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 11 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 4 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 2 commits2026-01-12: 20 commits2026-01-13: 19 commits2026-01-14: 13 commits2026-01-15: 19 commits2026-01-16: 31 commits2026-01-17: 14 commits2026-01-18: 35 commits2026-01-19: 46 commits2026-01-20: 25 commits2026-01-21: 11 commits2026-01-22: 13 commits2026-01-23: 2 commits2026-01-24: 0 commits2026-01-25: 3 commits2026-01-26: 1 commit2026-01-27: 16 commits2026-01-28: 13 commits2026-01-29: 21 commits2026-01-30: 3 commits2026-01-31: 23 commits2026-02-01: 17 commits2026-02-02: 14 commits2026-02-03: 27 commits2026-02-04: 24 commits2026-02-05: 11 commits2026-02-06: 4 commits2026-02-07: 15 commits2026-02-08: 45 commits2026-02-09: 9 commits2026-02-10: 8 commits2026-02-11: 16 commits2026-02-12: 25 commits2026-02-13: 10 commits2026-02-14: 9 commits2026-02-15: 45 commits2026-02-16: 7 commits2026-02-17: 22 commits2026-02-18: 9 commits2026-02-19: 38 commits2026-02-20: 49 commits2026-02-21: 29 commits2026-02-22: 37 commits2026-02-23: 12 commits2026-02-24: 22 commits2026-02-25: 35 commits2026-02-26: 36 commits2026-02-27: 16 commits2026-02-28: 57 commits2026-03-01: 38 commits2026-03-02: 58 commits2026-03-03: 37 commits2026-03-04: 8 commits2026-03-05: 29 commits2026-03-06: 25 commits2026-03-07: 17 commits2026-03-08: 87 commits2026-03-09: 25 commits2026-03-10: 16 commits2026-03-11: 0 commits2026-03-12: 35 commits2026-03-13: 58 commits2026-03-14: 33 commits2026-03-15: 11 commits2026-03-16: 8 commits2026-03-17: 10 commits2026-03-18: 34 commits2026-03-19: 8 commits2026-03-20: 15 commits2026-03-21: 1 commit2026-03-22: 11 commits2026-03-23: 27 commits2026-03-24: 26 commits2026-03-25: 23 commits2026-03-26: 33 commits2026-03-27: 24 commits2026-03-28: 30 commits2026-03-29: 12 commits2026-03-30: 37 commits2026-03-31: 23 commits2026-04-01: 39 commits2026-04-02: 22 commits2026-04-03: 15 commits2026-04-04: 21 commits2026-04-05: 19 commits2026-04-06: 33 commits2026-04-07: 24 commits2026-04-08: 16 commits2026-04-09: 18 commits2026-04-10: 38 commits2026-04-11: 39 commits2026-04-12: 18 commits2026-04-13: 76 commits2026-04-14: 28 commits2026-04-15: 53 commits2026-04-16: 47 commits2026-04-17: 96 commits2026-04-18: 35 commits2026-04-19: 18 commits2026-04-20: 13 commits2026-04-21: 6 commits2026-04-22: 31 commits2026-04-23: 51 commits2026-04-24: 26 commits2026-04-25: 3 commits2026-04-26: 92 commits2026-04-27: 75 commits2026-04-28: 41 commits2026-04-29: 80 commits2026-04-30: 29 commits2026-05-01: 13 commits2026-05-02: 5 commits2026-05-03: 35 commits2026-05-04: 4 commits2026-05-05: 114 commits2026-05-06: 71 commits2026-05-07: 60 commits2026-05-08: 18 commits2026-05-09: 18 commits2026-05-10: 68 commits2026-05-11: 5 commits2026-05-12: 1 commit2026-05-13: 5 commits2026-05-14: 29 commits2026-05-15: 4 commits2026-05-16: 3 commits2026-05-17: 10 commits2026-05-18: 51 commits2026-05-19: 39 commits2026-05-20: 39 commits2026-05-21: 35 commits2026-05-22: 7 commits2026-05-23: 69 commits2026-05-24: 68 commits2026-05-25: 13 commits2026-05-26: 39 commits2026-05-27: 36 commits2026-05-28: 103 commits2026-05-29: 57 commits2026-05-30: 54 commits2026-05-31: 62 commits2026-06-01: 56 commits2026-06-02: 32 commits2026-06-03: 12 commits2026-06-04: 84 commits2026-06-05: 89 commits2026-06-06: 30 commits2026-06-07: 57 commits2026-06-08: 20 commits2026-06-09: 28 commits2026-06-10: 41 commits2026-06-11: 49 commits2026-06-12: 30 commits2026-06-13: 20 commits2026-06-14: 76 commits2026-06-15: 2 commits2026-06-16: 17 commits2026-06-17: 12 commits2026-06-18: 10 commits2026-06-19: 1 commit2026-06-20: 39 commits2026-06-21: 29 commits2026-06-22: 7 commits2026-06-23: 0 commits2026-06-24: 5 commits2026-06-25: 16 commits2026-06-26: 30 commits2026-06-27: 4 commits2026-06-28: 41 commits2026-06-29: 13 commits2026-06-30: 25 commits2026-07-01: 126 commits2026-07-02: 55 commits2026-07-03: 24 commits2026-07-04: 123 commits2026-07-05: 54 commits2026-07-06: 18 commits2026-07-07: 12 commits2026-07-08: 15 commits2026-07-09: 31 commits2026-07-10: 55 commits2026-07-11: 43 commits2026-07-12: 45 commits2026-07-13: 27 commits2026-07-14: 19 commits2026-07-15: 28 commits2026-07-16: 45 commits2026-07-17: 34 commits2026-07-18: 78 commits2026-07-19: 59 commits2026-07-20: 33 commits2026-07-21: 11 commits2026-07-22: 21 commits2026-07-23: 46 commits2026-07-24: 105 commits2026-07-25: 31 commits2026-07-26: 82 commits2026-07-27: 56 commits2026-07-28: 70 commits2026-07-29: 107 commits2026-07-30: 25 commits2026-07-31: 45 commits2026-08-01: 14 commits2026-08-02: 90 commits2026-08-03: 55 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits
6,586 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    16,308 stars

  • Rising fast

    +1,710 stars this week

  • Very active

    6,586 commits in 52 weeks

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    21 trending appearances

What jcode does

jcode is an advanced command-line tool designed to act as an intelligent harness for software development. It focuses heavily on memory efficiency, ensuring that its background operations do not starve the host machine of resources during heavy compilation or inference tasks. By operating directly in the terminal, it bridges the gap between traditional UNIX workflows and modern AI assistance. It provides developers with a highly optimized environment to write, test, and query code without leaving their preferred shell, utilizing novel memory management techniques.

jcode is for terminal-centric developers and engineers working in resource-constrained environments who demand peak efficiency from their tooling.

  • High Memory Efficiency: Engineered to consume a fraction of the RAM used by typical Electron or JVM-based tools.
  • Intelligent Harness: Wraps around standard terminal commands to provide AI context to build errors and logs.
  • Terminal Native: Runs entirely within the command line interface, integrating smoothly with tmux and vim.
  • Optimized Profiling: Allows users to run memory-intensive workloads while the harness monitors and assists.
  • Low Latency: Written to ensure instantaneous response times, crucial for rapid iteration cycles.

Where teams use it

Low-Spec Development

Working on heavy codebases on older laptops where saving every megabyte of RAM prevents system thrashing.

CLI Workflow Enhancement

Terminal power users who want AI assistance without switching to a graphical IDE or browser.

Continuous Background Assistance

Running the tool constantly in a tmux pane to monitor logs and suggest fixes without slowing down the primary build.

Memory Constrained Environments

Deploying the harness inside small Docker containers or CI pipelines to assist with automated debugging.

Getting started: Visit jcode.sh/docs for installation commands.

README

master branch

jcode

Latest Release License: MIT Platforms Last Commit GitHub Stars Discord

The most RAM efficient harness
The most most intelligent harness

jcode memory demonstration

Website · Docs · SDK · Benchmarks · Features · Install · Quick Start · Further Reading · Contributing


Installation

# macOS & Linux
curl -fsSL https://jcode.sh/install | bash
# Windows 11 (PowerShell 5.1+)
irm https://jcode.sh/install.ps1 | iex

Need Homebrew, source builds, provider setup, or want an agent to set it up for you? Jump to detailed installation.


Performance & Resource Efficiency

jcode is built to be as performant and resource efficient as possible. Every metric is optimized to the bone, which is important for scaling multi-session workflows. Here we sample a few metrics to show the difference: RAM usage and boot up.

RAM comparison

1 active session
Tool PSS Comparison
jcode (local embedding off) 27.8 MB baseline
jcode 167.1 MB 6.0× more RAM
pi 144.4 MB 5.2× more RAM
Codex CLI 140.0 MB 5.0× more RAM
OpenCode 371.5 MB 13.4× more RAM
GitHub Copilot CLI 333.3 MB 12.0× more RAM
Cursor Agent 214.9 MB 7.7× more RAM
Claude Code 386.6 MB 13.9× more RAM
Antigravity CLI 243.7 MB 8.8× more RAM
10 active sessions
Tool PSS Comparison
jcode (local embedding off) 117.0 MB baseline
jcode 260.8 MB 2.2× more RAM
pi 833.0 MB 7.1× more RAM
Codex CLI 334.8 MB 2.9× more RAM
OpenCode 3237.2 MB 27.7× more RAM
GitHub Copilot CLI 1756.5 MB 15.0× more RAM
Cursor Agent 1632.4 MB 14.0× more RAM
Claude Code 2300.6 MB 19.7× more RAM
Antigravity CLI 1021.2 MB 8.7× more RAM

Time to first frame

Tool Time to first frame Range Comparison
jcode 14.0 ms 10.1–19.3 ms baseline
Antigravity CLI 383.5 ms 363.1–415.4 ms 27.4× slower
pi 590.7 ms 369.6–934.8 ms 42.2× slower
Codex CLI 882.8 ms 742.3–1640.9 ms 63.1× slower
OpenCode 1035.9 ms 922.5–1104.4 ms 74.0× slower
GitHub Copilot CLI 1518.6 ms 1357.4–1826.8 ms 108.5× slower
Cursor Agent 1949.7 ms 1711.0–2104.8 ms 139.3× slower
Claude Code 3436.9 ms 2032.7–8927.2 ms 245.5× slower

Measured on this Linux machine across 10 interactive PTY launches.

Time to first input

(time until typed probe text appears on the rendered screen; Antigravity uses its internal input-ready log marker because the sign-in screen suppresses probe echo.)

Tool Time to first input Range Comparison
jcode 48.7 ms 30.3–62.7 ms baseline
Antigravity CLI 383.7 ms 363.4–415.7 ms 7.9× slower
pi 596.4 ms 373.9–955.2 ms 12.2× slower
Codex CLI 905.8 ms 760.1–1675.7 ms 18.6× slower
OpenCode 1047.9 ms 931.1–1116.9 ms 21.5× slower
GitHub Copilot CLI 1583.4 ms 1422.8–1880.0 ms 32.5× slower
Cursor Agent 1978.7 ms 1727.3–2130.0 ms 40.6× slower
Claude Code 3512.8 ms 2137.4–9002.0 ms 72.2× slower

Measured on this Linux machine across 10 interactive PTY launches. Antigravity CLI was unauthenticated for this run; its sign-in screen rendered normally and emitted an internal CLI ready for user input marker, but did not echo the typed probe.

Additional clients / memory scaling

Tool Extra PSS per added session Comparison
jcode (local embedding off) ~9.9 MB baseline
jcode ~10.4 MB 1.1× more RAM
pi ~76.5 MB 7.7× more RAM
Codex CLI ~21.6 MB 2.2× more RAM
OpenCode ~318.4 MB 32.2× more RAM
GitHub Copilot CLI ~158.1 MB 16.0× more RAM
Cursor Agent ~157.5 MB 15.9× more RAM
Claude Code ~212.7 MB 21.5× more RAM
Antigravity CLI ~86.4 MB 8.7× more RAM
versions tested for this corrected memory rerun:
  • jcode v0.9.1888-dev (be386f2)
  • pi 0.62.0
  • codex-cli 0.120.0
  • opencode 1.0.203
  • GitHub Copilot CLI 1.0.24 for the 1-session rerun, GitHub Copilot CLI 1.0.27 for the 10-session rerun
  • Cursor Agent 2026.04.08-a41fba1
  • Claude Code 2.1.86 (Claude Code)
  • Antigravity CLI 1.0.0
jcode performance demonstration

jcode performance demonstration


Memory (Agent memory)

Jcode embeds each turn/response as a semantic vector. Every turn does queries a graph of memories to efficiently find related memory entries via a cosine similarity check. The embedding hits are fed into the conversation, or optionally uses a memory sideagent which verifies the memories are relevant, and potentially does more work for information retreival before injecting into the conversation. This results in a human like memory system which allows the agent to automatically recall relevant information to the conversation without actively calling memory tools or being a token burner. ot To have memories which are retrieved, they must also be extracted and stored. Every so often (semantic drift, K turns since last extraction, session end, etc), memories are extracted via a memory sideagent, and put into the memory graph.

The harness also provides explicit memory tools to allow the agent to actively search or store the memory without relying on a passive background process. The harness also provides session search for traditional RAG on previous sessions.

Memories are automatically consolidated every so often via the ambient mode. This reorganizes, checks for staleness and conflicts, etc

jcode memory demonstration

jcode memory demonstration


UI: Side panels, Diagrams, Info Widgets, rendering, scrolling, alignment

The side panel is a place for auxiliary information. Tell your jcode agent to load a file into the side panel and see it update in real time, or tell your agent to write directly to the side panel, or use it as a diff viewer. The side panel (and chat) is able to render mermaid diagrams inline. image

To make this possible, I created a new mermaid rendering library to render diagrams 1800x faster. It has no browser or Typescript dependency. See https://github.com/1jehuang/mermaid-rs-renderer

To show you important information without taking space away from the screen that could be used for responses, I developed info widgets. Info widgets will only ever take up the negative space on the screen to show you information, and will get out of the way if there isn't any.

Jcode can render at over a thousand fps. Your monitor will not have the refresh rate to show you, but this means you will not have silly flicker problems.

The custom scrollback implementation of jcode allows it to do much more than a native scrollback. However, it is a terminal-level limitation that I cannot have smooth, partial line scrolling with a custom scrollback. To fix this, I made my own terminal. Handterm https://github.com/1jehuang/handterm implements a native scroll api, and also happens to be very efficient. This is a work in progress. Scrolling is still well implemented for normal terminals.

Jcode is left-aligned by default. You can switch to centered mode with the Alt+C hotkey, with the /alignment command, or in the config.

To disable emoji globally in TUI and CLI output, set emoji = false under [display] in ~/.jcode/config.toml, or launch with JCODE_NO_EMOJI=1. Jcode replaces emoji with compact ASCII markers while preserving other Unicode text.


Swarm

Spawn two or more agents in the same repo, and they will automatically be managed by the server to allow native collaboration. When agent A edits a file that agent B has read (code shifting under its feet), the server notifies agent B. Agent B can ignore it if it is not relevant, or it can check the diff to make sure that it doesn't conflict. Each agent has messaging abilities, capable of DMing just one agent, broadcasting to all other agents hosted by the server, or just agents working in that repo. This allows you to spawn multiple sessions in the same repo, and have all conflicts automatically resolved.

jcode swarm demonstration

jcode swarm demonstration

Agents are also able to spawn their own swarms autonomously. They have a swarm tool which allows them to spawn in their own teamates to accomplish tasks in parallel. Doing so turns the main agent into a coordinator and the spawned agents into workers. Groups of agents, their messaging channels, their completion statuses, etc are all automatically managed. This can be done headlessly or headed.


OAuth and Providers

jcode works with subscription-backed OAuth flows and many provider integrations, so you can use the models you already pay for and still fall back to direct API providers when needed.

Supported built-in login flows

  • Claude (jcode login --provider claude)
  • OpenAI / ChatGPT / Codex (jcode login --provider openai)
  • Google Gemini (jcode login --provider gemini)
  • GitHub Copilot (jcode login --provider copilot)
  • Azure OpenAI (jcode login --provider azure)
  • Alibaba Cloud Coding Plan (jcode login --provider alibaba-coding-plan)
  • Fireworks (jcode login --provider fireworks)
  • MiniMax (jcode login --provider minimax)
  • LM Studio (jcode login --provider lmstudio)
  • Ollama (jcode login --provider ollama)
  • Custom OpenAI-compatible endpoint (jcode login --provider openai-compatible)

For custom OpenAI-compatible endpoints, jcode now prompts for the API base and supports local localhost servers without requiring an API key.

Config-file setup for self-hosted endpoints and MCP

If you prefer to configure things by editing files instead of using the login UI, jcode supports both a custom OpenAI-compatible endpoint config and MCP config files.

OpenAI-compatible providers

Many hosted services speak the standard OpenAI /v1/chat/completions API. jcode talks to them through one shared OpenAI-compatible provider, so you can use almost any such endpoint without waiting for a dedicated integration.

There are two ways to set one up:

  • Built-in named profiles — jcode ships ready-made profiles for several popular OpenAI-compatible services. Log in by id and jcode fills in the base URL and key environment variable for you:

    jcode login --provider <profile-id>
    # for example:
    jcode login --provider openrouter
    jcode login --provider deepseek
    jcode login --provider opencode      # OpenCode Zen
    jcode login --provider moonshotai

    Built-in OpenAI-compatible profile ids include: openrouter, deepseek, zai, kimi, moonshotai, opencode (OpenCode Zen), opencode-go, 302ai, baseten, cortecs, huggingface, nebius, scaleway, stackit, and firmware. Each profile only sets the endpoint and key variable; you still pick the model with /model (or --model). Run jcode login with no provider to see the interactive list.

  • Any other endpoint — point jcode at an arbitrary OpenAI-compatible API (hosted or local) with jcode login --provider openai-compatible or the scriptable jcode provider add command described below.

Useful environment overrides for these endpoints:

  • JCODE_STREAM_IDLE_TIMEOUT_SECS — raise the base streaming idle timeout (default 180s) for slow reasoning models that think silently before emitting tokens. High reasoning efforts scale this automatically (high 2x, xhigh 3x, max 4x). Also settable as [provider] stream_idle_timeout_secs in config.toml.
  • Per-model context_window (alias context_limit) in a [[providers.<name>.models]] entry — set the context window when the endpoint has no usable /v1/models response, so jcode does not fall back to the generic 200k default.
  • extra_body — inject non-standard top-level fields into every chat/completions request body for backends that require them. See Extra request-body fields below.

For details on self-hosting, local runtimes, and the exact config file shape, see below.

Self-hosted OpenAI-compatible endpoints, including vLLM

For agents and scripts, the preferred path is the one-shot provider profile command. It writes a named profile to ~/.jcode/config.toml, stores secrets in jcode's private app config directory when requested, and prints exact run/validation commands:

# Secret-safe setup for a hosted OpenAI-compatible API.
printf '%s' "$MY_API_KEY" | jcode provider add my-api \
  --base-url https://llm.example.com/v1 \
  --model my-model-id \
  --api-key-stdin \
  --set-default \
  --json

# Smoke test the profile.
jcode --provider-profile my-api auth-test --prompt 'Reply exactly JCODE_PROVIDER_SETUP_OK'

# Use it directly.
jcode --provider-profile my-api run 'hello'

For local servers that do not require auth:

jcode provider add local-vllm \
  --base-url http://localhost:8000/v1 \
  --model Qwen/Qwen3-Coder-30B-A3B-Instruct \
  --no-api-key \
  --set-default

Built-in local profiles are available for the common desktop/local runtimes:

# Ollama: start the local server and install a model first.
ollama pull llama3.2
jcode login --provider ollama
jcode --provider ollama --model llama3.2 run 'hello'

# LM Studio: start the Local Server, load a chat model, then use the exact
# model identifier shown by LM Studio or by curl http://localhost:1234/v1/models.
jcode login --provider lmstudio
jcode --provider lmstudio --model '<model-id>' run 'hello'

Ollama and LM Studio both expose OpenAI-compatible /v1/models and /v1/chat/completions endpoints. jcode uses streaming chat completions, function/tool calling, and OpenAI-style image content for vision-capable local models. If a local server requires a token, enter it during jcode login or create a named profile with --api-key-stdin.

Useful flags:

  • --api-key-env NAME: reference an existing environment variable instead of storing a key.
  • --api-key-stdin: read and store a key without putting it in shell history.
  • --context-window TOKENS: persist the model context window for model selection and routing.
  • --overwrite: replace an existing profile of the same name.
  • --model-catalog: use the endpoint's /models response in addition to configured models.

The generated profile can also be edited manually in ~/.jcode/config.toml:

[provider]
default_provider = "my-api"
default_model = "my-model-id"

[providers.my-api]
type = "openai-compatible"
base_url = "https://llm.example.com/v1"
api_key_env = "JCODE_PROVIDER_MY_API_API_KEY"
env_file = "provider-my-api.env"
default_model = "my-model-id"

[[providers.my-api.models]]
id = "my-model-id"
context_window = 128000
Extra request-body fields (extra_body)

Some OpenAI-compatible backends require non-standard top-level request fields. For example, NVIDIA NIM DeepSeek-V4 reasoning models (deepseek-ai/deepseek-v4-flash, deepseek-ai/deepseek-v4-pro) only enable thinking when the request includes chat_template_kwargs; without it they reply without reasoning (or, for some deployments, hang). jcode lets you inject arbitrary top-level fields two ways.

  1. Per named profile, via extra_body in config.toml (a TOML table merged verbatim into the JSON body):

    [providers.my-nim]
    type = "openai-compatible"
    base_url = "https://integrate.api.nvidia.com/v1"
    api_key_env = "NVIDIA_API_KEY"
    default_model = "deepseek-ai/deepseek-v4-flash"
    
    [providers.my-nim.extra_body.chat_template_kwargs]
    thinking = true
    reasoning_effort = "high"
  2. For built-in profiles (e.g. nvidia-nim) or any endpoint, via the JCODE_OPENAI_EXTRA_BODY environment variable (a JSON object string). It can live in the provider's env file (~/.config/jcode/nvidia-nim.env) next to the API key:

    JCODE_OPENAI_EXTRA_BODY={"chat_template_kwargs":{"thinking":true,"reasoning_effort":"high"}}

Keys from extra_body are merged last and override any jcode-generated body field with the same name (JCODE_OPENAI_EXTRA_BODY wins over the config extra_body on key collisions). Invalid values are logged and ignored rather than failing the request.

The custom OpenAI-compatible provider reads overrides from environment variables or from an env file in jcode's app config directory. On Linux this is usually ~/.config/jcode/, so the default file is usually:

~/.config/jcode/openai-compatible.env

Example for a local or LAN vLLM server:

JCODE_OPENAI_COMPAT_API_BASE=http://192.168.1.50:8000/v1
JCODE_OPENAI_COMPAT_DEFAULT_MODEL=Qwen/Qwen3-Coder-30B-A3B-Instruct
# Optional if your server expects auth
OPENAI_COMPAT_API_KEY=your-token-here

Notes:

  • jcode login --provider openai-compatible can create or update this for you.
  • Plain http:// is accepted for localhost and private LAN IPs. Public remote HTTP is still rejected.
  • HTTPS endpoints work as usual.

MCP config files

MCP config is separate from config.toml.

Primary config files:

  • ~/.jcode/mcp.json for global MCP servers
  • .jcode/mcp.json for project-local MCP servers

Claude Code compatibility:

  • ~/.claude.json (Claude Code's user config): top-level mcpServers, plus per-project servers under projects.<abs_path>.mcpServers for the current directory
  • .mcp.json at the repo root (Claude Code's project config)
  • .claude/mcp.json (legacy fallback)

Both the canonical mcpServers key and jcode's historical servers key are accepted. jcode currently supports stdio (command-based) servers only; HTTP/SSE entries ("type": "http"/"sse") are recognized and skipped with a log line.

Example MCP config:

{
  "mcpServers": {
    "filesystem": {
      "command": "/path/to/mcp-server",
      "args": ["--root", "/workspace"],
      "env": {},
      "shared": true
    }
  }
}

On first run, jcode also tries to import MCP servers from ~/.claude.json (falling back to the legacy ~/.claude/mcp.json) and ~/.codex/config.toml if ~/.jcode/mcp.json does not exist yet.

For headless or SSH sessions, OAuth-style providers support jcode login --provider <provider> --no-browser (alias: --headless) so jcode prints the auth URL/QR and falls back to manual code or callback paste instead of trying to launch a local browser.

For more scriptable remote flows, claude, openai, gemini, and antigravity also support a two-step pattern:

# Step 1: print a resumable auth URL
jcode login --provider openai --print-auth-url --json

# Step 2: complete later with the callback URL or auth code
jcode login --provider openai --callback-url 'http://localhost:1455/auth/callback?...'
jcode login --provider gemini --auth-code '...'

Additional scriptable cases:

# Copilot device flow: print URL + user code, then complete later
jcode login --provider copilot --print-auth-url --json
jcode login --provider copilot --complete

# Gmail/Google OAuth after credentials are already configured
jcode login --provider google --print-auth-url --google-access-tier readonly
jcode login --provider google --callback-url 'http://127.0.0.1:8456?...'

Pending scriptable login state is stored under ~/.jcode/pending-login/, automatically expires, and stale entries are cleaned up when new scriptable logins start or resume.

For the built-in OpenAI login flow, jcode opens a local callback on http://localhost:1455/auth/callback by default.

Screenshot from 2026-04-02 14-28-51 The above image is the first page of provider logins

Supported provider

  • Native / first-party style providers: claude, openai, copilot, gemini, azure, alibaba-coding-plan
  • Aggregator / compatibility providers: openrouter, openai-compatible
  • Additional provider integrations: opencode, opencode-go, zai / kimi, 302ai, baseten, cortecs, deepseek, firmware, huggingface, moonshotai, nebius, scaleway, stackit, groq, mistral, perplexity, togetherai, deepinfra, fireworks, minimax, xai, lmstudio, ollama, chutes, cerebras, cursor, antigravity, google

Jcode also supports easy multi-account switching. Ran out of tokens on your first ChatGPT Pro subscription? /account and quickly switch to your second.


Customizability / Self-Dev

Jcode is inventing a new form of customizability. One that doesn't limit you to what a plugin or extension can do. Tell your jcode agent to enter self dev mode, and it will start modifying its own source code. Jcode is optimized to iterate on itself. There is significant infrastructure around self developement, which allows it to edit, build, and test its own source code, then reload its own binary and continue work in your (potentially many) sessions, fully automatically.

It is reccomended that you use a frontier model for this. The jcode codebase is not a simple one, and weaker models can make subtle, breaking changes. GPT 5.5 or the latest available frontier model works well.


Misc.

The devil is in the details. There are many undocumented optimizations and niceties that jcode implements. Some examples:

Anthropic's Claude cache goes cold after 5 minutes. If you initiate Claude after these 5 minutes, you have a cache miss, potentially costing you lots of tokens. The ui warns you when the cache went cold, and notfies you if there was an unexpected cache miss.

jcode comes with instructions on how to set up Firefox Agent Bridge. Ask you agent to set it up, and then you will have browser automation in jcode as well.

Agent grep is a grep tool I made for the jcode agent. It adds file strucuture information (ie the list of functions, their displacement, etc) to the grep return, so that the agent can infer more of what the file doesn without actually reading the file. It also implements a harness-level integration that adaptively truncates returns based on what the agent has already seen. This saves on context a lot.

Inputs are by default interleaved with the working agent. It sends the input as soon as it safely can without breaking the KV cache. Submit with shift enter instead, and it will send a queue send, and wait for the agent to fully finish its turn before sending.

Resume sessions from different harnesses. Claude code broke on you? Resume the session from jcode and continue where you left off. Session resume is supported for codex, claude code, opencode, and pi.

Screenshot from 2026-04-11 16-28-52 image of /Resume for codex sessions

Skills are not all loaded on startup. The conversation is embedded as a semantic vector, and will automatically inject a skill if there is an embedding hit similar to memories. The agent has a skill tool for you to manually activate a skill at anytime. You may also activate via slash commands.


iOS Application / Native OpenClaw

A native iOS application version of jcode is coming soon. This will allow you to work with jcode on your personal machine's environment from your phone, via Tailscale. Openclaw like features will be bundled with this iOS application.


Other planned features

Agents dont like to commit in dirty git state with active changes. Git was clearly not built for multi-agent workflows, and git worktrees is not a good solution. Given this, I believe that is an opporunity for a new git like primitive to be born.

Build speed improvements: An incremental debug cargo build with cache enabled takes about 1 minute on my machine. The goal is 5-20 seconds. Refactors and crates seams should be able to make this happen.


Quick Start

# Launch the TUI
jcode

# Run a single command non-interactively
jcode run "say hello"

# Resume a previous session by memorable name
jcode --resume fox

# Run as a persistent background server, then attach more clients
jcode serve
jcode connect

# Send voice input from your configured STT command
jcode dictate

jcode supports interactive TUI use, non-interactive runs, persistent server/client workflows, and hotkey-friendly dictation without requiring a bundled speech-to-text stack.

jcode workflow demonstration

jcode workflow demonstration


Browser Automation

jcode includes a first-class built-in browser tool for browser control inside agent sessions.

Current built-in backend:

  • Firefox via Firefox Agent Bridge

Current built-in tool actions include:

  • status
  • setup
  • open
  • snapshot
  • get_content
  • interactables
  • click
  • type
  • fill_form
  • select
  • wait
  • screenshot
  • eval
  • scroll
  • upload
  • press

Quick setup:

jcode browser status
jcode browser setup

Once setup is complete, the model can use the built-in browser tool directly. The UI also summarizes browser tool calls compactly, for example opening a URL, clicking a selector, or typing into a field without echoing sensitive typed text.

Notes:

  • the provider/tool architecture is in place for additional backends
  • Firefox is the wired built-in backend today
  • Chrome bridge / remote debugging style providers can be added on top of the same browser tool later

Further Reading


Detailed Installation

Setup

If you want another agent to set up jcode for you, give it this prompt:

Set up jcode on this machine for me.

1. Detect the operating system, available package managers, and shell environment, then install jcode using the best matching command below instead of referring me somewhere else:

   - macOS with Homebrew available:
     brew tap 1jehuang/jcode
     brew install jcode

   - macOS or Linux via install script:
     curl -fsSL https://jcode.sh/install | bash

   - Windows PowerShell:
     irm https://jcode.sh/install.ps1 | iex

   - From source if the above paths are not appropriate:
     git clone https://github.com/1jehuang/jcode.git
     cd jcode
     cargo build --release
     scripts/install_release.sh

   - For local self-dev / refactor work on Linux x86_64, prefer:
     scripts/dev_cargo.sh build --release -p jcode --bin jcode
     scripts/dev_cargo.sh --print-setup
     scripts/install_release.sh

2. Verify that `jcode` is on my `PATH`.
3. Launch `jcode` once in a new terminal window/session to confirm it starts successfully.
4. Before attempting any interactive login flow, assess which providers are already available non-interactively and prefer those first. Check existing local credentials, config files, CLI sessions, and environment variables such as:
   - Claude: `~/.jcode/auth.json`, `~/.claude/.credentials.json`, `~/.local/share/opencode/auth.json`, `ANTHROPIC_API_KEY`
   - OpenAI: `~/.jcode/openai-auth.json`, `~/.codex/auth.json`, `OPENAI_API_KEY`
   - Gemini: `~/.jcode/gemini_oauth.json`, `~/.gemini/oauth_creds.json`
   - GitHub Copilot: existing auth under `~/.config/github-copilot/`
   - Azure OpenAI: `~/.config/jcode/azure-openai.env`, `AZURE_OPENAI_*`, or an existing `az login`
   - OpenRouter: `OPENROUTER_API_KEY`
   - Fireworks: `~/.config/jcode/fireworks.env`, `FIREWORKS_API_KEY`
   - MiniMax: `~/.config/jcode/minimax.env`, `MINIMAX_API_KEY`
   - NVIDIA NIM: `~/.config/jcode/nvidia-nim.env`, `NVIDIA_API_KEY`
   - Alibaba Cloud Coding Plan: existing jcode config/env if present
5. Prefer whichever provider is already configured and verify it with `jcode auth-test --all-configured` or a provider-specific auth test when appropriate.
6. Only if no usable provider is already configured, guide me through the minimal manual step needed:
   - Claude: `jcode login --provider claude`
   - GitHub Copilot: `jcode login --provider copilot`
   - OpenAI: `jcode login --provider openai`
   - Gemini: `jcode login --provider gemini`
   - Azure OpenAI: `jcode login --provider azure`
   - Fireworks: `jcode login --provider fireworks`
   - MiniMax: `jcode login --provider minimax`
   - NVIDIA NIM: `jcode login --provider nvidia-nim`
   - Alibaba Cloud Coding Plan: `jcode login --provider alibaba-coding-plan`
   - OpenRouter: help me set `OPENROUTER_API_KEY`
   - Anthropic direct API: help me set `ANTHROPIC_API_KEY`
7. After setup, run a simple smoke test with `jcode run "say hello"` and confirm it works.
8. If I want browser automation, also check `jcode browser status`. If browser automation is not ready, run `jcode browser setup`, verify the built-in `browser` tool works, and explain any remaining manual step.
9. Explain any manual step that still needs me, especially browser OAuth, device login, API key entry, or browser extension approval.

This is intended to be a copy-paste bootstrap prompt for jcode itself or any other coding agent.

Quick Install

# macOS & Linux
curl -fsSL https://jcode.sh/install | bash

On Termux, install the glibc runtime and patchelf first so the installer can patch the downloaded Linux binary to Termux's glibc dynamic linker and create a launcher that avoids Termux's LD_PRELOAD shim:

pkg install glibc patchelf
curl -fsSL https://jcode.sh/install | bash
# Windows 11 x64 or ARM64 (PowerShell 5.1+)
irm https://jcode.sh/install.ps1 | iex

The Windows installer selects the correct architecture and verifies the download against the release's SHA256SUMS. Alacritty and the optional global launch hotkey require explicit consent and are not installed by default. See Windows support, security, Defender, and SmartScreen notes.

If a release does not contain a matching Windows asset, the installer stops instead of unexpectedly starting a long compilation. An explicit source build is available with -BuildFromSource and requires Git, Rust, and Visual Studio 2022 Build Tools with the Desktop development with C++ workload.

macOS via Homebrew

brew tap 1jehuang/jcode
brew install jcode

From Source (all platforms)

git clone https://github.com/1jehuang/jcode.git
cd jcode
cargo build --release

For local self-dev / refactor work on Linux x86_64, prefer:

scripts/dev_cargo.sh build --release -p jcode --bin jcode
scripts/dev_cargo.sh --print-setup

That wrapper automatically uses sccache when available, prefers a fast working local linker setup (clang + lld) instead of assuming every machine's mold configuration is valid, and can print the active linker/cache setup via --print-setup so slow-path builds are easier to diagnose.

Then symlink to your PATH:

scripts/install_release.sh

Uninstall

Removes installed binaries and the launcher but keeps your config, auth, and sessions so a clean reinstall picks up where you left off:

curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/uninstall.sh | bash -s -- --yes

For a full wipe of everything including config, auth, sessions, logs, and memory (useful for recovering from a broken install):

curl -fsSL https://raw.githubusercontent.com/1jehuang/jcode/master/scripts/uninstall.sh | bash -s -- --purge --yes

Add --dry-run to preview what would be removed without deleting anything.

Platform Support

Platform Status
Linux x86_64 / aarch64 Fully supported
macOS Apple Silicon & Intel Supported
Windows x86_64 Supported (native + WSL2)
Termux aarch64 / x86_64 Supported with pkg install glibc patchelf
View on GitHub

Recent activity

commits and pull requests

Releases and announcements

147 total
  1. v0.67.1v0.67.1Aug 3, 20263.1K downloads

    **Provider reliability fixes** ### Improvements - Anthropic usage now shows model-specific weekly limits alongside account-wide windows ### Fixes - Gemini tool schemas are sanitized for provider compatibility - MCP notifications no longer cause request-handling failures - Completed desktop todo items render without a duplicate marker glyph **Full changelog**: https://github.com/1jehuang/jcode/compare/v0.67.0...v0.67.1 <!-- jcode-platform-availability:start --> ## Platform availability - Linux x86_64: available - Linux aarch64: available - macOS Apple Silicon: available - macOS Intel: available - Windows x86_64: available - Windows ARM64: available - FreeBSD x86_64: available <!-- jcode-platform-availability:end --> <!-- jcode-discord-announced:v0.67.1 -->

  2. v0.67.0v0.67.0Aug 3, 2026872 downloads

    **Richer SDK and desktop workflows** ### Highlights - The Rust SDK now supports owned launches, global lifecycle events, schema-validated structured runs, and runtime file management - The new desktop experience adds multi-session workspace navigation, native math typesetting, persistent plans, richer settings and model selection, and image previews - Headed terminal spawns now integrate with Herdr for reliable visible agent sessions ### Improvements - Todo plans now use semantic quality assessments and continue iterating when evidence shows meaningful work remains - Rust and TypeScript SDK capabilities are kept in parity with clearer lifecycle behavior - Desktop self-development builds can relaunch registered desktop instances automatically ### Fixes - Restored desktop edit cards preserve their file names - Desktop errors render as distinct red cards - Todo assessment changes and low-confidence completion notices render correctly in the terminal - Activating a Jcode account now refreshes available models automatically **Full changelog**: https://github.com/1jehuang/jcode/compare/v0.66.0...v0.67.0 <!-- jcode-platform-availability:start --> ## Platform availability - Linux

  3. v0.66.0v0.66.0Aug 3, 20262K downloads

    **Build on jcode** ### Highlights - A production-ready TypeScript SDK and Rust SDK can now launch isolated jcode agents or connect to a running instance - SDK clients can stream turns, request validated structured output, inspect models and providers, manage session retention, search project files, and subscribe to events - The desktop app can resume stored sessions and paste clipboard images directly ### Improvements - Desktop scrolling is faster and smoother across mouse wheels, trackpads, and keyboard controls - Desktop settings expose reasoning display and copy-on-select controls - Ctrl+L now behaves like a terminal clear while keeping earlier history available above the viewport - Tool output limits prevent oversized command results from overwhelming agent context ### Fixes - Private SDK instances inherit logins safely, isolate sessions, and clean up their processes and state on close or crash - Desktop reconnects now recover their retry timing and clearly report successful reconnection - Authentication guidance no longer suggests stale static API models - Session cancellation remains correct after a session rename **Full changelog**: https://github.com/1jehuang/jcode/c

  4. v0.65.0v0.65.0Aug 2, 20265.9K downloads

    **Seamless self-update, calmer TUI** ### Highlights - Self-update is now seamless: a live progress bar during download and a graceful in-place reload when it finishes - Todos you are working on stay pinned in a band at the top of the viewport while you scroll - Ctrl+L is a true terminal-style clear: the screen blanks, history stays above, and the prompt sits at the top ### Improvements - New display.external_sessions setting hides other CLIs' sessions from the session picker - The swarm gallery and snapshots now show which provider and auth route each agent is using - Markdown tables honour column alignment in every renderer, and copying a table gives you clean text - Inline math stays inline in image mode and blends with the surrounding prose colour - The discover_tools browse card is now a single compact line, and the sponsored-discovery notice is gone - Tool descriptions and parameter docs are capped, leaving more of the context window for your work - Ollama reports the context window it is actually serving instead of the trained window - Crash-resume hints now point at the session picker ### Fixes - Custom OpenAI-compatible profile models route to their own profile instea

  5. v0.64.2v0.64.2Jul 30, 202614.2K downloads

    **Idle animation off for everyone** ### Highlights - The decorative idle animation is now turned off for all users, including existing configs, via a one-time migration; re-enable it anytime with display.idle_animation = true ### Improvements - Ctrl+R reverse history search now behaves readline-style - H1/H2 markdown headings render visually larger via underline ### Fixes - Desktop: messages typed mid-turn are queued instead of being dropped with 'already processing' **Full changelog**: https://github.com/1jehuang/jcode/compare/v0.64.1...v0.64.2 <!-- jcode-platform-availability:start --> ## Platform availability - Linux x86_64: available - Linux aarch64: available - macOS Apple Silicon: available - macOS Intel: available - Windows x86_64: available - Windows ARM64: available - FreeBSD x86_64: available <!-- jcode-platform-availability:end --> <!-- jcode-discord-announced:v0.64.2 -->

Code frequency

additions and deletions
+478.3K-478.3KWeek of 2026-01-04: +9,477 linesWeek of 2026-01-04: -1,048 linesWeek of 2026-01-11: +25,262 linesWeek of 2026-01-11: -5,141 linesWeek of 2026-01-18: +28,387 linesWeek of 2026-01-18: -6,392 linesWeek of 2026-01-25: +14,549 linesWeek of 2026-01-25: -2,894 linesWeek of 2026-02-01: +22,771 linesWeek of 2026-02-01: -4,927 linesWeek of 2026-02-08: +29,425 linesWeek of 2026-02-08: -5,474 linesWeek of 2026-02-15: +22,908 linesWeek of 2026-02-15: -5,269 linesWeek of 2026-02-22: +30,105 linesWeek of 2026-02-22: -7,452 linesWeek of 2026-03-01: +48,447 linesWeek of 2026-03-01: -30,053 linesWeek of 2026-03-08: +82,990 linesWeek of 2026-03-08: -41,060 linesWeek of 2026-03-15: +24,586 linesWeek of 2026-03-15: -3,905 linesWeek of 2026-03-22: +56,635 linesWeek of 2026-03-22: -22,081 linesWeek of 2026-03-29: +35,039 linesWeek of 2026-03-29: -12,583 linesWeek of 2026-04-05: +43,863 linesWeek of 2026-04-05: -9,246 linesWeek of 2026-04-12: +115,005 linesWeek of 2026-04-12: -82,756 linesWeek of 2026-04-19: +29,716 linesWeek of 2026-04-19: -11,820 linesWeek of 2026-04-26: +143,756 linesWeek of 2026-04-26: -99,667 linesWeek of 2026-05-03: +56,308 linesWeek of 2026-05-03: -23,801 linesWeek of 2026-05-10: +18,948 linesWeek of 2026-05-10: -3,565 linesWeek of 2026-05-17: +56,926 linesWeek of 2026-05-17: -16,880 linesWeek of 2026-05-24: +478,346 linesWeek of 2026-05-24: -431,796 linesWeek of 2026-05-31: +65,314 linesWeek of 2026-05-31: -21,928 linesWeek of 2026-06-07: +62,446 linesWeek of 2026-06-07: -32,934 linesWeek of 2026-06-14: +22,588 linesWeek of 2026-06-14: -3,075 linesWeek of 2026-06-21: +13,526 linesWeek of 2026-06-21: -2,013 linesWeek of 2026-06-28: +130,291 linesWeek of 2026-06-28: -87,772 linesWeek of 2026-07-05: +34,043 linesWeek of 2026-07-05: -9,331 linesWeek of 2026-07-12: +45,594 linesWeek of 2026-07-12: -8,354 linesWeek of 2026-07-19: +48,262 linesWeek of 2026-07-19: -17,325 linesWeek of 2026-07-26: +77,829 linesWeek of 2026-07-26: -87,702 linesWeek of 2026-08-02: +41,520 linesWeek of 2026-08-02: -3,471 linesJan 4, 2026Aug 2, 2026
+1.9M lines added, -1.1M removed over the last year.

Commits per week

last 52 weeks
4070Week of 2025-08-09: 0 commitsWeek of 2025-08-16: 0 commitsWeek of 2025-08-23: 0 commitsWeek of 2025-08-30: 0 commitsWeek of 2025-09-06: 0 commitsWeek of 2025-09-13: 0 commitsWeek of 2025-09-20: 0 commitsWeek of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 15 commitsWeek of 2026-01-11: 118 commitsWeek of 2026-01-18: 132 commitsWeek of 2026-01-25: 80 commitsWeek of 2026-02-01: 112 commitsWeek of 2026-02-08: 122 commitsWeek of 2026-02-15: 199 commitsWeek of 2026-02-22: 215 commitsWeek of 2026-03-01: 212 commitsWeek of 2026-03-08: 254 commitsWeek of 2026-03-15: 87 commitsWeek of 2026-03-22: 174 commitsWeek of 2026-03-29: 169 commitsWeek of 2026-04-05: 187 commitsWeek of 2026-04-12: 353 commitsWeek of 2026-04-19: 148 commitsWeek of 2026-04-26: 335 commitsWeek of 2026-05-03: 320 commitsWeek of 2026-05-10: 115 commitsWeek of 2026-05-17: 250 commitsWeek of 2026-05-24: 370 commitsWeek of 2026-05-31: 365 commitsWeek of 2026-06-07: 245 commitsWeek of 2026-06-14: 157 commitsWeek of 2026-06-21: 91 commitsWeek of 2026-06-28: 407 commitsWeek of 2026-07-05: 228 commitsWeek of 2026-07-12: 276 commitsWeek of 2026-07-19: 306 commitsWeek of 2026-07-26: 399 commitsWeek of 2026-08-02: 145 commitsAug 9, 2025Aug 2, 2026
6.6K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 58 commitsSun 1:00 — 55 commitsSun 2:00 — 39 commitsSun 3:00 — 63 commitsSun 4:00 — 38 commitsSun 5:00 — 40 commitsSun 6:00 — 37 commitsSun 7:00 — 29 commitsSun 8:00 — 16 commitsSun 9:00 — 31 commitsSun 10:00 — 22 commitsSun 11:00 — 30 commitsSun 12:00 — 32 commitsSun 13:00 — 30 commitsSun 14:00 — 56 commitsSun 15:00 — 55 commitsSun 16:00 — 90 commitsSun 17:00 — 94 commitsSun 18:00 — 99 commitsSun 19:00 — 115 commitsSun 20:00 — 84 commitsSun 21:00 — 79 commitsSun 22:00 — 45 commitsSun 23:00 — 29 commitsMon 0:00 — 52 commitsMon 1:00 — 64 commitsMon 2:00 — 45 commitsMon 3:00 — 44 commitsMon 4:00 — 20 commitsMon 5:00 — 7 commitsMon 6:00 — 3 commitsMon 7:00 — 18 commitsMon 8:00 — 12 commitsMon 9:00 — 9 commitsMon 10:00 — 21 commitsMon 11:00 — 33 commitsMon 12:00 — 38 commitsMon 13:00 — 31 commitsMon 14:00 — 30 commitsMon 15:00 — 42 commitsMon 16:00 — 42 commitsMon 17:00 — 40 commitsMon 18:00 — 56 commitsMon 19:00 — 39 commitsMon 20:00 — 44 commitsMon 21:00 — 55 commitsMon 22:00 — 59 commitsMon 23:00 — 28 commitsTue 0:00 — 36 commitsTue 1:00 — 43 commitsTue 2:00 — 64 commitsTue 3:00 — 43 commitsTue 4:00 — 23 commitsTue 5:00 — 13 commitsTue 6:00 — 12 commitsTue 7:00 — 3 commitsTue 8:00 — 9 commitsTue 9:00 — 11 commitsTue 10:00 — 26 commitsTue 11:00 — 36 commitsTue 12:00 — 44 commitsTue 13:00 — 48 commitsTue 14:00 — 49 commitsTue 15:00 — 38 commitsTue 16:00 — 39 commitsTue 17:00 — 33 commitsTue 18:00 — 34 commitsTue 19:00 — 25 commitsTue 20:00 — 30 commitsTue 21:00 — 32 commitsTue 22:00 — 42 commitsTue 23:00 — 24 commitsWed 0:00 — 39 commitsWed 1:00 — 48 commitsWed 2:00 — 48 commitsWed 3:00 — 37 commitsWed 4:00 — 26 commitsWed 5:00 — 20 commitsWed 6:00 — 1 commitsWed 7:00 — 10 commitsWed 8:00 — 10 commitsWed 9:00 — 11 commitsWed 10:00 — 16 commitsWed 11:00 — 15 commitsWed 12:00 — 46 commitsWed 13:00 — 44 commitsWed 14:00 — 62 commitsWed 15:00 — 99 commitsWed 16:00 — 65 commitsWed 17:00 — 72 commitsWed 18:00 — 80 commitsWed 19:00 — 48 commitsWed 20:00 — 30 commitsWed 21:00 — 35 commitsWed 22:00 — 33 commitsWed 23:00 — 28 commitsThu 0:00 — 43 commitsThu 1:00 — 59 commitsThu 2:00 — 34 commitsThu 3:00 — 41 commitsThu 4:00 — 25 commitsThu 5:00 — 19 commitsThu 6:00 — 24 commitsThu 7:00 — 14 commitsThu 8:00 — 14 commitsThu 9:00 — 19 commitsThu 10:00 — 15 commitsThu 11:00 — 21 commitsThu 12:00 — 36 commitsThu 13:00 — 56 commitsThu 14:00 — 55 commitsThu 15:00 — 54 commitsThu 16:00 — 51 commitsThu 17:00 — 58 commitsThu 18:00 — 60 commitsThu 19:00 — 91 commitsThu 20:00 — 81 commitsThu 21:00 — 63 commitsThu 22:00 — 51 commitsThu 23:00 — 43 commitsFri 0:00 — 66 commitsFri 1:00 — 44 commitsFri 2:00 — 29 commitsFri 3:00 — 20 commitsFri 4:00 — 34 commitsFri 5:00 — 29 commitsFri 6:00 — 13 commitsFri 7:00 — 14 commitsFri 8:00 — 9 commitsFri 9:00 — 6 commitsFri 10:00 — 4 commitsFri 11:00 — 31 commitsFri 12:00 — 33 commitsFri 13:00 — 44 commitsFri 14:00 — 39 commitsFri 15:00 — 70 commitsFri 16:00 — 57 commitsFri 17:00 — 51 commitsFri 18:00 — 46 commitsFri 19:00 — 73 commitsFri 20:00 — 75 commitsFri 21:00 — 63 commitsFri 22:00 — 44 commitsFri 23:00 — 30 commitsSat 0:00 — 36 commitsSat 1:00 — 22 commitsSat 2:00 — 23 commitsSat 3:00 — 35 commitsSat 4:00 — 28 commitsSat 5:00 — 30 commitsSat 6:00 — 26 commitsSat 7:00 — 10 commitsSat 8:00 — 15 commitsSat 9:00 — 10 commitsSat 10:00 — 11 commitsSat 11:00 — 20 commitsSat 12:00 — 20 commitsSat 13:00 — 40 commitsSat 14:00 — 56 commitsSat 15:00 — 35 commitsSat 16:00 — 73 commitsSat 17:00 — 68 commitsSat 18:00 — 57 commitsSat 19:00 — 47 commitsSat 20:00 — 81 commitsSat 21:00 — 43 commitsSat 22:00 — 41 commitsSat 23:00 — 30 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits6,559 (98%)
Community commits113 (2%)

6,672 commits in total over the last year.

DateListRankStars gained
Aug 7, 2026weekly#9+2,903
Aug 7, 2026monthly#7+8,110
Aug 6, 2026weekly#9+2,903
Aug 5, 2026weekly#6+3,294
Aug 4, 2026weekly#5+3,735
Aug 3, 2026weekly#4+3,620
Aug 2, 2026daily#8+527
Aug 2, 2026weekly#7+3,548
Aug 1, 2026weekly#7+3,107
Aug 1, 2026daily#8+527
Jul 31, 2026daily#3+640
Jul 31, 2026weekly#7+3,107
Jul 30, 2026weekly#11+2,495
Jul 30, 2026daily#3+640
Jul 29, 2026weekly#11+2,495
  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    385.5K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • obra/superpowers

    An agentic skills framework & software development methodology that works.

    268.6K stars · Shell

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    238.5K stars · JavaScript