← Back
openJiuwen-ai

openJiuwen-ai/iCode

A lightweight, extensible, fully offline development platform and agent/workflow toolkit for the AI era, with an intuitive TUI, easy deployment, and complete control over your data, agents, and workflows.

View on GitHub ↗
Stars
288
Forks
49
Watchers
288
Open issues
6
Contributors
3
Language
Python
License
Apache License 2.0
Default branch
main
Created Sep 28, 2026Updated Sep 30, 2026

Star growth

Today—
This week—
This month—

Star history will appear here once this repo has been tracked for a couple of days.

README

   ▄   ▄▄▄▄
   ▀██████▀          █▄
 ▀▀  ██              ██
 ██  ██     ▄███▄ ▄████ ▄█▀█▄
 ██  ██     ██ ██ ██ ██ ██▄█▀
▄██  ▀█████▄▀███▀▄█▀███▄▀█▄▄▄

English | 简体中文

Work in progress. Interfaces, file formats, and defaults still change between releases.

What is iCode?

Let the screenshots speak for themselves.

Use a modern terminal. iCode works best in one such as Windows Terminal on Windows or Ghostty on macOS and Linux.

Home

The agent, model, approval mode and session at a glance, with agents (#), models ($), commands (/), files (@) and the shell (!) a keystroke away from the input bar.

iCode start screen with the Code Agent selected and an empty conversation sidebar

Chat

Answers render as rich Markdown in the terminal, diagrams included.

A chat answer rendering an entity diagram and a formatted bullet list

Workflows

Watch a workflow run node by node, with each agent node's model, tool calls and token spend.

Workflow mode running the demo workflow, showing its node graph mid-run

Agents

An agent is configuration, not code: instructions, tools, sub-agents, skills, MCP servers and memory, all edited in one place (F2).

The Agent Configuration screen editing the built-in Code Agent

Models

Model profiles from different providers side by side, switchable mid-conversation (F4).

The Model Configuration screen editing a DeepSeek profile that uses the Responses API

Diff

Every file the agent changed, turn by turn or all at once, in unified or split view.

The diff viewer showing a change tree and a unified diff of a Python file

Rollback

Pick a turn, review the file changes that would be reverted, then discard the conversation after it.

The rollback dialog listing the file changes to revert after a chosen turn

Trajectory

Where the time and tokens went (F12): model versus tools versus waiting, a per-turn breakdown, and token and cache usage.

The trajectory overview with time, token and parallelism breakdowns

Every model call, hook and tool call in a turn, laid out on a timeline.

The trajectory timeline showing a turn's model cycles, hooks and tool calls

Shell

The shell (!) is a real terminal, so full-screen programs run in place with every keystroke forwarded to them: here htop, inside iCode, inside iCode, inside iCode.

Three nested iCode shells, the innermost running htop

How to run

uv is the only prerequisite; it provisions Python 3.14 for you. From a checkout:

uv sync --extra all        # not bare `uv sync`, not `--all-extras`
./scripts/fetch_rg.sh      # downloads the vendored ripgrep; Windows: .\scripts\fetch_rg.ps1
uv run icode               # `uv run chrys` starts the same thing (`Chrys` is our code name)

iCode ships no model profiles, so press F4 on first launch to add one.

User guide

Press F8 inside iCode to open the built-in user guide, a complete walkthrough of using it. The same pages live in docs/, in English and 简体中文.

Privacy

iCode does not collect your data. It has no telemetry, analytics or crash reporting, and by default it sends nothing, usage data included, to us or to any other third party. What iCode itself sends goes only to destinations you configure: the model providers you add, the MCP servers your agents use, and any hooks or OpenTelemetry export you set up. The web tools are off by default. If you turn them on for an agent, its search queries go to the search provider you configure, or to Exa's public search service (mcp.exa.ai) if you configure none, and the pages it reads are requested directly from their websites. Shell commands, skill scripts and workflows that you or your agents run are programs in their own right, with your network access, so what they send is up to them. Your data is yours alone, and we respect your privacy.

Regulatory compliance

iCode is solely a tool for orchestrating agents and workflows. It does not include or provide any AI model; every model it uses is one you connect to it. When you integrate AI models into iCode for a particular business or engineering use, you bear full responsibility for meeting the compliance obligations that use carries under the EU AI Act (Regulation (EU) 2024/1689) and any other applicable legal or regulatory framework.

License

iCode is open source under the Apache License 2.0. It also contains and bundles third-party software, each part under its own license; NOTICE lists them with their copyright notices and license terms.