DeepSeek-native AI coding agent for your terminal. Engineered around prefix-cache stability — leave it running. http://reasonix.io/
  • Go 68.9%
  • TypeScript 23.5%
  • CSS 3%
  • JavaScript 2.1%
  • Python 1%
  • Other 1.3%
Find a file
SivanCola 738e9b956e
Unify transcript recovery and completion with Follow v2 / 统一会话同步与完成机制 (#10385)
* Unify transcript recovery and completion through runtime-owned v2

Problem: completed or reconnecting chats could lose visible output, infer incorrect run state, or display an intermediate duration.

Root cause: independent history, event-ledger and runtime snapshots described different cuts, and sampling settlement could precede its business commit.

Fix: publish canonical batches and independently versioned sampling frames from the session runtime; use one mandatory Follow v2 consumer for local and remote chat, persistence barriers, stable identities and bounded canonical paging. Preserve old session logs and provider serialization.

Verification: root and Desktop Go suites, transcript/session/control race tests, 371 frontend suites, typechecks, production build, Chromium and 42 macOS Electron layout scenarios; Windows cross-compilation. Native Windows verification follows on this branch.

* Keep contributor prompt instructions outside transcript migration

Problem: changing contributor AGENTS text affects repository instruction inputs. Root cause: protocol documentation had also been copied into the contributor instruction file. Fix: retain the existing instructions and keep migration details in the bilingual user documentation. Verification: cache and provider serialization guards passed; no runtime code changed.

* Separate transcript bookkeeping and honor native viewport geometry

Problem: transcript additions exceeded existing complexity and file-size budgets, and the Windows layout fixture assumed odd native widths were exact CSS widths. Root cause: runtime reduction, settlement publication and store contracts were embedded in larger owners; 200% Windows scaling rounded a requested 1009px surface to 1010px. Fix: extract cohesive helpers/types without changing publication order or provider bytes; test representable sizes on both sides of the launcher threshold and measure actual CSS geometry. Verification: repolint, transcript/type/hooks checks and focused Go tests pass; Windows native tests and race checks exercise the extracted boundaries.

* Migrate remote regression fixtures to transcript Follow

Route mock remote output through the mandatory Follow stream and keep metadata separate from snapshot cuts. Assert prefix preservation and ordered completion instead of legacy history rebases. Use unique mock sampling identities across turns and wait for pane transitions in native layout tests.

* Use reverse slice iteration for transcript retractions

* Give explicit transcript retries a fresh snapshot

A retry during ancillary hydration could join an already-installed old snapshot. Mark explicit retry reads as fresh so they supersede the previous load while ordinary startup reads still coalesce. Force a pending ancillary read in the regression and verify its late completion cannot overwrite the replacement.
2026-09-16 09:20:23 +08:00
.githooks chore(standards): machine-enforce comment, file-size, and layering rules (#7806) 2026-08-07 11:25:52 +08:00
.github Fix background conversation attention notifications / 修复后台对话 Ask 与审批通知 (#10382) 2026-09-16 08:06:51 +08:00
.reasonix/commands feat: import Go implementation as v2 kernel (renamed duo → reasonix) 2026-05-29 18:13:20 -07:00
.signpath fix: recover Windows signing requests on retry / 重跑复用 Windows 签名请求 (#10264) 2026-09-14 13:10:01 +08:00
benchmarks Align context compaction with DeepSeek Harness / 按 DeepSeek Harness 重构上下文压缩 (#8964) 2026-08-17 00:27:54 +08:00
cmd Bound desktop session resources / 限制桌面会话资源占用 (#10295) 2026-09-15 03:06:59 +08:00
desktop Unify transcript recovery and completion with Follow v2 / 统一会话同步与完成机制 (#10385) 2026-09-16 09:20:23 +08:00
docs Unify transcript recovery and completion with Follow v2 / 统一会话同步与完成机制 (#10385) 2026-09-16 09:20:23 +08:00
internal Unify transcript recovery and completion with Follow v2 / 统一会话同步与完成机制 (#10385) 2026-09-16 09:20:23 +08:00
npm ci(npm): publish packages with provenance attestations / npm 发布附带 provenance 证明 (#10216) 2026-09-13 11:51:15 +08:00
release-notes docs(release): 准备 v1.38.9 中英更新日志 (#10361) 2026-09-15 20:43:55 +08:00
scripts Fix background conversation attention notifications / 修复后台对话 Ask 与审批通知 (#10382) 2026-09-16 08:06:51 +08:00
sdk/go feat(desktop): expose adapter model capability metadata 2026-09-04 22:09:32 +08:00
site fix(site): temporarily pin Desktop downloads to v1.38.3 (#10375) 2026-09-15 22:23:33 +08:00
tools Fix background conversation attention notifications / 修复后台对话 Ask 与审批通知 (#10382) 2026-09-16 08:06:51 +08:00
workers Fix desktop updates and slim native packages / 修复桌面更新并精简原生安装包 (#10194) 2026-09-12 13:03:59 +00:00
.env.example feat: import Go implementation as v2 kernel (renamed duo → reasonix) 2026-05-29 18:13:20 -07:00
.gitattributes fix(edit): clarify CRLF edit diagnostics 2026-07-07 18:06:07 +08:00
.gitignore ci: 精简并分层前端验证 / streamline frontend validation (#10193) 2026-09-12 21:51:30 +08:00
.golangci-version ci: run CI's linter locally, and stop timing out on slow Windows runners 2026-08-09 02:11:36 -07:00
.golangci.yml perf: optimize web D1 queries / 优化网站 D1 查询性能 (#9752) 2026-09-03 06:29:30 +00:00
.goreleaser.yaml build(brew): emit postflight_steps for the quarantine hook / Homebrew cask 改用 postflight_steps (#10217) 2026-09-13 11:52:18 +08:00
CHANGELOG.md fix(cli): restore YOLO permission shortcuts (#10356) 2026-09-15 19:27:05 +08:00
CLAUDE.md chore(standards): machine-enforce comment, file-size, and layering rules (#7806) 2026-08-07 11:25:52 +08:00
CONTRIBUTING.md Bound desktop session resources / 限制桌面会话资源占用 (#10295) 2026-09-15 03:06:59 +08:00
design-qa.md Refactor chat, permissions, and Windows sandbox around Harness / 以 Harness 重构聊天、权限与 Windows 沙箱 (#10209) 2026-09-13 13:41:48 +08:00
dev ci(desktop): drop the WebKitGTK/WebView2 toolchain and native smoke harnesses 2026-09-09 10:44:35 +08:00
go.mod feat(bash): persist cwd and environment across foreground calls / 前台 bash 跨调用保留工作目录与环境 (#10327) 2026-09-15 16:43:52 +08:00
go.sum feat(bash): persist cwd and environment across foreground calls / 前台 bash 跨调用保留工作目录与环境 (#10327) 2026-09-15 16:43:52 +08:00
LICENSE chore: initialize v2 — ground-up rewrite 2026-05-29 17:53:10 -07:00
Makefile ci(desktop): drop the WebKitGTK/WebView2 toolchain and native smoke harnesses 2026-09-09 10:44:35 +08:00
prod_fast_test ci(desktop): drop the WebKitGTK/WebView2 toolchain and native smoke harnesses 2026-09-09 10:44:35 +08:00
prod_test ci(desktop): drop the WebKitGTK/WebView2 toolchain and native smoke harnesses 2026-09-09 10:44:35 +08:00
README.md Refactor chat, permissions, and Windows sandbox around Harness / 以 Harness 重构聊天、权限与 Windows 沙箱 (#10209) 2026-09-13 13:41:48 +08:00
README.zh-CN.md Refactor chat, permissions, and Windows sandbox around Harness / 以 Harness 重构聊天、权限与 Windows 沙箱 (#10209) 2026-09-13 13:41:48 +08:00
reasonix.example.toml fix(cli): restore YOLO permission shortcuts (#10356) 2026-09-15 19:27:05 +08:00
REASONIX.md refactor(skill): streamline prompts and load references on demand (#10189) 2026-09-12 19:32:19 +08:00
SECURITY.md fix(control): contain image file references 2026-06-22 15:39:56 +08:00

Reasonix

English  ·  简体中文  ·  Guide  ·  ACP  ·  Extensions  ·  Spec  ·  Website  ·  Discord

npm version CI license downloads GitHub stars AtomGit stars contributors Discussions Discord

esengine/DeepSeek-Reasonix | Trendshift esengine/DeepSeek-Reasonix | Trendshift


Open source · MIT · a single Go binary

A coding agent you can leave running.

One local engine, four ways in — terminal, desktop app, browser, or your editor over ACP. Plan mode, permissions, a workspace sandbox and per-turn checkpoints keep a long autonomous run something you can still read and undo.


Important

Community · 加入社区 — bilingual Discord for setup help (#help / #求助), workflow showcases, and feature ideas. → https://discord.gg/XF78rEME2D


Features

  • Config-driven. Providers, the agent, enabled tools, and plugins are all declared in reasonix.toml. No hardcoded models.
  • Multi-model & composable. DeepSeek ships as a preset; any OpenAI-compatible endpoint is a config entry, not new code. Optionally run two models together (executor + planner) in separate, cache-stable sessions.
  • Plugin-driven. MCP servers contribute tools, prompts, and resources; Extension Protocol v1 sidecars can also intercept runtime events, contribute Providers and structured UI, and ship versioned plugin packages.
  • Cache-aware context maintenance. Startup injects a small stable environment summary, stale tool output is snipped/pruned before summary compaction, and the built-in tool schema contract is documented for regression review.
  • Zero-friction distribution. CGO_ENABLED=0 single binary; cross-compile to six targets with one command. The result is a fully self-contained static binary — nothing to install on the target machine beyond the binary itself.

Install

Choose the path that matches how you want to use Reasonix. The CLI/TUI, desktop app, and VS Code extension all use the same local Reasonix engine.

Path A: CLI / TUI

Install the native binary through npm on any supported platform, or use Homebrew on macOS:

npm i -g reasonix                  # any OS; pulls the prebuilt native binary
brew install esengine/reasonix/reasonix   # macOS

Prebuilt archives (darwin|linux|windows × amd64|arm64) and SHA256SUMS are on every GitHub release.

Path B: Desktop app

Use the official download page for the latest desktop build.

Platform Package Architecture
macOS Universal .dmg or .zip Apple Silicon / Intel
Windows Installer .exe or portable .zip x64 / ARM64
Linux .deb or .tar.gz x64

Windows installers are code-signed through SignPath.io with a free certificate provided by the SignPath Foundation.

Path C: VS Code extension

Complete Path A first. The extension does not bundle the CLI; it starts your local reasonix acp backend and adds native chat, editor context, tool-call approvals, model selection, and workspace sessions.

Path D: Build from source

Clone the repository first:

git clone https://github.com/esengine/DeepSeek-Reasonix.git
cd DeepSeek-Reasonix

CLI

The CLI build requires Go 1.26+. The module pins a toolchain directive; keep GOTOOLCHAIN=auto so Go downloads the pinned toolchain, or install it.

make build      # -> bin/reasonix(.exe)
make cross      # -> dist/ (darwin|linux|windows × amd64|arm64)

Desktop

The desktop build additionally requires Node 24+ and pnpm 10 (npm install -g pnpm@10) for the frontend and the Electron shell:

scripts/desktop-build.sh darwin/arm64 v0.0.0-dev   # one platform per run

No platform webview dependencies are needed — the shell ships its own Chromium. See the desktop build guide.

Quick start

CLI / TUI

These commands are for the CLI/TUI installed through Path A:

reasonix setup                      # configure a provider and model
reasonix                            # start an interactive session
reasonix run "implement the TODOs in main.go"

In an interactive session, run /init when you want Reasonix to create project instructions.

Desktop app

Download the installer for your platform from the official download page, install and launch Reasonix, then configure a provider and model in the app. The CLI commands above are not required for the desktop app.

For advanced CLI usage and configuration, see the CLI reference, Guide, and configuration paths.

Documentation

Star History

Star History Chart

Acknowledgments

A small list of folks whose work has shaped Reasonix the most — the current top 20 contributors by commit count. The full contributor graph is on GitHub.

Contributor Contributor Contributor Contributor
SivanCola esengine ttmouse lifu963
reasonix HUQIANTAO GTC2080 light-front-theory
merge-order-check Li-Charles-One eghrhegpe wufengfan
CVEngineer66 dependabot[bot] lanshi17 SuMuxi66
CnsMaple cyq1017 JesonChou XTLine

Special thanks to Bernardxu123 for designing the project logo and intro video.

Contributors to esengine/DeepSeek-Reasonix



MIT — see LICENSE
Built by the community at esengine/DeepSeek-Reasonix


Support this project

If Reasonix has been useful and you'd like to say thanks, you can. It stays a coffee, not a contract — donations don't buy feature priority or change how issues get triaged.

WeChat Pay QR code