从源码构建需先装 Rust stable、Node 22+、pnpm 及对应平台的 Tauri 前置依赖;AppImage 需要 FUSE,否则加 --appimage-extract-and-run;本地模型需自行部署 LM Studio/MLX/Ollama 并配置端点,AI 功能才可用。

terax-ai
cryntaApache-2.0活跃维护7MB 的终端优先 AI 原生开发环境,内置智能体,用 Rust 和 Tauri 打造,在终端里直接完成编码与 AI 辅助任务。
Lightweight (7MB) terminal-first AI-native development environment
pnpm install
pnpm tauri devREADME 未说明显存或 GPU 型号要求;本地模型推理需自备 LM Studio、MLX 或 Ollama 端点。支持 macOS、Linux、Windows。
轻量终端优先的 AI 原生开发环境,7MB 大小,自带终端、编辑器与 AI 侧栏
7MB 的终端优先 AI 原生开发环境,内置智能体,用 Rust 和 Tauri 打造,在终端里直接完成编码与 AI 辅助任务。
核心能力
- 原生 PTY 后端配 WebGL 渲染的多标签终端
- AI 侧栏支持自带密钥或本地模型,可读写改文件并执行命令
- CodeMirror 6 编辑器支持 AI 补全与逐块接受编辑 diff
- 内置源码控制面板,含真实提交图与 hunk 级暂存
- 自动探测本地开发服务器并在预览标签中打开
容易踩的坑
- v0.9.0Terax v0.9.0最新正式版2026-10-16 · 2026-10-16 11:55 UTC
Terax 0.9.0 introduces a new Ghostty-powered + WebGPU terminal and a broad pass on responsiveness and resource use.
- Lower idle CPU use and less memory growth when switching tabs, desktops, and windows.
- Smoother window and split resizing, with fewer redraw artifacts and duplicated prompts.
- Pixel-aligned text and seamless box-drawing, braille, and Powerline glyphs.
- More efficient terminal output, background tasks, file watching, and startup loading.
- More reliable AI conversation storage and cancellation, plus security hardening around terminal transport and network requests.
- Explorer file paste from the OS clipboard, multi-select operations, and faster file search.
- Bundled CLI file opening, nested-repository Git support, editor shortcut improvements, and refined agent notifications and window styling.
Downloads include macOS Apple Silicon and Intel, Windows, and Linux packages. Windows installations without WebView2 need an internet connection to install its runtime.
What's Changed
- nix: update sources to 0.8.6 by @github-actions[bot] in https://github.com/crynta/terax-ai/pull/1054
- test(git): cover GitError display formatting by @mydd7 in https://github.com/crynta/terax-ai/pull/1064
- test(wsl): cover WSL command output decoding by @mydd7 in https://github.com/crynta/terax-ai/pull/1071
- test(git): cover upstream and path normalization helpers by @mydd7 in https://github.com/crynta/terax-ai/pull/1065
- test(agents): cover agent label formatting by @mydd7 in https://github.com/crynta/terax-ai/pull/1066
- test(ai): cover todo validation and the todo tool by @mydd7 in https://github.com/crynta/terax-ai/pull/1068
- test(shortcuts): cover command palette MRU ranking by @mydd7 in https://github.com/crynta/terax-ai/pull/1072
- build(deps-dev): bump the npm-dev group with 5 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/1041
- build(deps): bump the cargo group in /src-tauri with 10 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/1042
- test(shortcuts): cover command palette availability logic by @mydd7 in https://github.com/crynta/terax-ai/pull/1070
- build(deps): bump the npm-prod-minor-patch group across 1 directory with 10 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/1084
- test(shortcuts): cover shortcut label override resolution by @mydd7 in https://github.com/crynta/terax-ai/pull/1075
- build(deps): bump taiki-e/install-action from 2 to 2.85.4 in the github-actions group by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/1092
- build(deps-dev): bump the npm-dev group with 3 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/1093
- build(deps-dev): bump vite-plugin-inspect from 11.4.1 to 12.0.2 by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/1095
- build(deps): bump the npm-prod-minor-patch group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/1094
- feat(fs): natural (numeric-aware) sort for the file tree by @h1tTAKA in https://github.com/crynta/terax-ai/pull/1079
- fix(pty): avoid fish conda prompt recursion by @ogarciarevett in https://github.com/crynta/terax-ai/pull/1085
- fix(explorer): preserve sidebar width across window resize by @WodenJay in https://github.com/crynta/terax-ai/pull/1082
- test(git-history): cover graph rail width by @mydd7 in https://github.com/crynta/terax-ai/pull/1074
- test(ai): cover run_subagent tool by @mydd7 in https://github.com/crynta/terax-ai/pull/1069
- test(ai): cover model preference dedup and toggle logic by @mydd7 in https://github.com/crynta/terax-ai/pull/1116
- fix(tabs): improve tab interaction handling by @Deformance in https://github.com/crynta/terax-ai/pull/1115
- fix(terminal): route external links through native opener by @Gimics in https://github.com/crynta/terax-ai/pull/1111
- feat(git): support nested repository targeting by @crynta in https://github.com/cr
- v0.8.6Terax v0.8.62026-07-27 · 2026-07-27 23:32 UTC
查看更新说明
What's Changed
- nix: update sources to 0.8.5 by @github-actions[bot] in https://github.com/crynta/terax-ai/pull/987
- build(deps): bump the npm-prod-minor-patch group with 4 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/990
- build(deps): bump the cargo group in /src-tauri with 3 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/989
- feat: add directional pane swapping shortcuts by @calmasacow in https://github.com/crynta/terax-ai/pull/995
- build(deps-dev): bump the npm-dev group across 1 directory with 9 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/986
- feat(bundle): open files via the OS "Open With" action by @AuricX in https://github.com/crynta/terax-ai/pull/980
- feat(tabs): show terminal agent status on tabs by @emutis21 in https://github.com/crynta/terax-ai/pull/976
- fix(pty): preserve terminal response order by @danchamorro in https://github.com/crynta/terax-ai/pull/1004
- feat(agents): add Pi notification support by @danchamorro in https://github.com/crynta/terax-ai/pull/1008
- test: add coverage for untested pure-logic modules by @mydd7 in https://github.com/crynta/terax-ai/pull/1013
- test: add coverage for more pure-logic helpers by @mydd7 in https://github.com/crynta/terax-ai/pull/1023
- test(shortcuts): cover keybinding display and matching by @mydd7 in https://github.com/crynta/terax-ai/pull/1024
- build(deps): bump actions/setup-node from 6 to 7 in the github-actions group by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/1016
- build(deps): bump the npm-prod-minor-patch group with 14 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/1019
- build(deps): bump the cargo group in /src-tauri with 3 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/1018
- build(deps-dev): bump the npm-dev group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/1017
- fix(explorer): prevent sidebar scroll bleed on long search results by @sohammondal in https://github.com/crynta/terax-ai/pull/1015
- test(ai): cover edit tool guards and multi_edit atomicity by @mydd7 in https://github.com/crynta/terax-ai/pull/1029
- fix(terminal): preserve native keys in alternate screen by @atchyutn in https://github.com/crynta/terax-ai/pull/1025
- fix(tooling): remove shebang from eager-graph.mjs so vitest can import it by @Gimics in https://github.com/crynta/terax-ai/pull/1036
- feat(terminal): drag explorer paths into terminal by @crynta in https://github.com/crynta/terax-ai/pull/1038
New Contributors
- @calmasacow made their first contribution in https://github.com/crynta/terax-ai/pull/995
- @AuricX made their first contribution in https://github.com/crynta/terax-ai/pull/980
- @emutis21 made their first contribution in https://github.com/crynta/terax-ai/pull/976
- @danchamorro made their first contribution in https://github.com/crynta/terax-ai/pull/1004
- @sohammondal made their first contribution in https://github.com/crynta/terax-ai/pull/1015
- @atchyutn made their first contribution in https://github.com/crynta/terax-ai/pull/1025
- @Gimics made their first contribution in https://github.com/crynta/terax-ai/pull/1036
Full Changelog: https://github.com/crynta/terax-ai/compare/v0.8.5...v0.8.6
- v0.8.5Terax v0.8.52026-07-10 · 2026-07-10 19:51 UTC
查看更新说明
What's Changed
- nix: update sources to 0.8.2 by @github-actions[bot] in https://github.com/crynta/terax-ai/pull/861
- feat(editor): add per-tab language override via icon dropdown by @Deformance in https://github.com/crynta/terax-ai/pull/864
- feat(source-control): checkout branches in UI by @WrkX in https://github.com/crynta/terax-ai/pull/866
- feat(agents): notifications for Codex and Gemini CLI by @crynta in https://github.com/crynta/terax-ai/pull/885
- fix(terminal): use native clipboard for copy/paste on Linux (#713) by @crynta in https://github.com/crynta/terax-ai/pull/895
- feat(tabs): select tabs by index within active space by @roberto-fernandino in https://github.com/crynta/terax-ai/pull/881
- build(deps): bump the cargo group across 1 directory with 4 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/889
- feat(workspace): default environment for new spaces by @Masalale in https://github.com/crynta/terax-ai/pull/869
- fix(markdown): preserve HTML-wrapped code block text by @ogarciarevett in https://github.com/crynta/terax-ai/pull/887
- fix(explorer): empty file tree on rapid root change by @pawn-trackit in https://github.com/crynta/terax-ai/pull/822
- fix(pty): rewrap fish prompt after config by @ogarciarevett in https://github.com/crynta/terax-ai/pull/888
- feat(sidebar): persist collapsed state across sessions by @crynta in https://github.com/crynta/terax-ai/pull/903
- feat(lsp): opt-in pluggable language server support by @crynta in https://github.com/crynta/terax-ai/pull/919
- feat(lsp): resource hardening, editor chrome and navigation by @crynta in https://github.com/crynta/terax-ai/pull/929
- feat(lsp): editor settings tab, premium intellisense and 13 new languages by @crynta in https://github.com/crynta/terax-ai/pull/937
- feat(editor): selectable formatter with fixed format on save by @crynta in https://github.com/crynta/terax-ai/pull/939
- build(deps): bump tauri from 2.11.3 to 2.11.4 in /src-tauri in the cargo group by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/943
- build(deps): bump tauri-apps/tauri-action from 0 to 1 in the github-actions group by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/942
- docs: align verify commands with CI, fix doc drift, add architecture guides by @vkayonline in https://github.com/crynta/terax-ai/pull/900
- fix(markdown): render file previews statically by @PeppaPigw in https://github.com/crynta/terax-ai/pull/913
- Harden AI search tool path filtering by @crynta in https://github.com/crynta/terax-ai/pull/960
- build(deps): bump the npm-prod-minor-patch group with 9 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/945
- Feat/toggle ai chat window shortcut by @roberto-fernandino in https://github.com/crynta/terax-ai/pull/882
- Editor overhaul: data safety, LSP depth, formatters, autocomplete, markdown notes by @crynta in https://github.com/crynta/terax-ai/pull/982
- feat(ai): add current frontier models and provider errors by @crynta in https://github.com/crynta/terax-ai/pull/985
New Contributors
- @Deformance made their first contribution in https://github.com/crynta/terax-ai/pull/864
- @WrkX made their first contribution in https://github.com/crynta/terax-ai/pull/866
- @roberto-fernandino made their first contribution in https://github.com/crynta/terax-ai/pull/881
- @Masalale made their first contribution in https://github.com/crynta/terax-ai/pull/869
- @ogarciarevett made their first contribution in https://github.com/crynta/terax-ai/pull/887
- @pawn-trackit made their first contribution in https://github.com/crynta/terax-ai/pull/822
- @vkayonline made their first contribution in https://github.com/crynta/terax-ai/pull/900
- @PeppaPigw made their first contribution in https://github.com/crynta/terax-ai/pull/913
Full Changelog: https://github.com/crynta/terax-ai/compare/v0.8.2...v0.8.5
- v0.8.2Terax v0.8.22026-06-23 · 2026-06-23 14:54 UTC
查看更新说明
What's Changed
- build(deps-dev): bump the npm-dev group with 5 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/834
- build(deps): bump actions/checkout from 6 to 7 in the github-actions group by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/833
- fix(explorer): close context menu after deleting an item by @mxerf in https://github.com/crynta/terax-ai/pull/837
- feat(editor): syntax highlighting for more formats + all Dockerfile variants by @chukfinley in https://github.com/crynta/terax-ai/pull/610
- feat(ai): add Grok 4.3, Grok Build 0.1, Claude Opus 4.8 and GPT-5.5 Pro by @FrancoEscob in https://github.com/crynta/terax-ai/pull/599
- fix: resolve a11y and complexity lint issues by @nanamm19991234-dev in https://github.com/crynta/terax-ai/pull/719
- feat(editor): add word wrap toggle to editor settings by @GeronimoCastano in https://github.com/crynta/terax-ai/pull/480
- feat(terminal): add font weight setting by @marcosportales in https://github.com/crynta/terax-ai/pull/569
- feat(editor): add Twig language support using html language mode by @rrr63 in https://github.com/crynta/terax-ai/pull/780
- feat(autocomplete): enable named openai-compatible endpoints by @rrr63 in https://github.com/crynta/terax-ai/pull/742
- fix(breadcrumb): added horizontal scrolling to prevent overflow by @RealPhobia in https://github.com/crynta/terax-ai/pull/818
- build(deps): bump the npm-prod-minor-patch group across 1 directory with 14 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/842
- feat(terminal): user-selectable default shell by @crynta in https://github.com/crynta/terax-ai/pull/858
New Contributors
- @mxerf made their first contribution in https://github.com/crynta/terax-ai/pull/837
- @FrancoEscob made their first contribution in https://github.com/crynta/terax-ai/pull/599
- @nanamm19991234-dev made their first contribution in https://github.com/crynta/terax-ai/pull/719
- @marcosportales made their first contribution in https://github.com/crynta/terax-ai/pull/569
- @RealPhobia made their first contribution in https://github.com/crynta/terax-ai/pull/818
Full Changelog: https://github.com/crynta/terax-ai/compare/v0.8.1...v0.8.2
- v0.8.1Terax v0.8.12026-06-19 · 2026-06-19 22:58 UTC
查看更新说明
What's Changed
- nix: update sources to 0.8.0 by @github-actions[bot] in https://github.com/crynta/terax-ai/pull/791
- fix(pty): preserve fish cwd tracking with starship by @Lani0516 in https://github.com/crynta/terax-ai/pull/798
- fix(tabs): skip close dialog for last tab in space by @hexxt-git in https://github.com/crynta/terax-ai/pull/805
- build(deps): bump the cargo group across 1 directory with 2 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/770
- build(deps-dev): bump the npm-dev group across 1 directory with 4 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/796
- feat(ai): add Groq and Whisper.cpp STT providers by @zsuryk in https://github.com/crynta/terax-ai/pull/811
- build(deps): bump the npm-prod-minor-patch group across 1 directory with 15 updates by @dependabot[bot] in https://github.com/crynta/terax-ai/pull/808
- feat(theme): standalone editor theme picker, more themes, font fixes by @crynta in https://github.com/crynta/terax-ai/pull/815
- fix(wsl): restore per-space workspace env on reopen by @agrimshar in https://github.com/crynta/terax-ai/pull/799
- fix(terminal): #448 Terminal fails to initialize on launching split pane, becoming unresponsive. by @TheoSlater in https://github.com/crynta/terax-ai/pull/597
- feat(terminal): add osc52 clipboard handler by @KaanAydinli in https://github.com/crynta/terax-ai/pull/821
- feat(tabs): drag-to-reorder tabs via pointer events by @aditya-thummar-devx in https://github.com/crynta/terax-ai/pull/810
- Tab/space UX pass: Ctrl+Tab switcher, release-to-select, drop dnd-kit by @crynta in https://github.com/crynta/terax-ai/pull/824
New Contributors
- @github-actions[bot] made their first contribution in https://github.com/crynta/terax-ai/pull/791
- @Lani0516 made their first contribution in https://github.com/crynta/terax-ai/pull/798
- @agrimshar made their first contribution in https://github.com/crynta/terax-ai/pull/799
- @TheoSlater made their first contribution in https://github.com/crynta/terax-ai/pull/597
- @KaanAydinli made their first contribution in https://github.com/crynta/terax-ai/pull/821
- @aditya-thummar-devx made their first contribution in https://github.com/crynta/terax-ai/pull/810
Full Changelog: https://github.com/crynta/terax-ai/compare/v0.8.0...v0.8.1
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Terax is a lightweight open-source terminal-first AI-native development environment (ADE) built on Tauri 2 + Rust and React 19. A native PTY backend with a WebGL renderer, an agentic AI side-panel that runs against your own keys or fully local models, plus a code editor, file explorer, source control with a git graph, and a web preview pane built in. About 7-8 MB on disk. No telemetry. No account.
[!NOTE] Over the past few months, most of my development time went into building Zephium, a new browser-native work environment rebuilt for humans and agents.
Terax is now returning to active development. A major v0.9.0 update is already in progress, with some substantial architectural changes, including moving from xterm.js to libghostty + WebGPU.
More updates soon.
Screenshots
Features
Terminal
- xterm.js with WebGL renderer, multi-tab with background streaming
- GPU-accelerated block-based terminal with editor-like command input
- Native PTY backend via
portable-pty(zsh, bash, pwsh, fish, cmd) - Split panels (horizontal and vertical)
- Inline search, link detection, true-color
- Drag files from the explorer or desktop into a terminal as shell-safe quoted paths
- Per-tab workspace environments on Windows (Local, or any installed WSL distro)
- Spaces restore tabs, working directories, and split layouts across launches
Code editor
- CodeMirror 6 (supports all popular languages - TS/JS, Rust, Python, Go, C/C++, Java, HTML/CSS, JSON, Markdown, etc.)
- Inline AI autocomplete with local model support
- AI edit diffs, accept or reject hunk by hunk
- Opt-in language server support with diagnostics, navigation, completion, formatting, and custom servers
- Rendered Markdown plus image, video, audio, and PDF viewing
- Vim mode
- Built-in editor themes including Kanagawa, Catppuccin, Rosé Pine, Everforest, Dracula, Solarized, Nord, Tokyo Night, GitHub, and Xcode
Source control
- Stage / unstage hunks, commit (Cmd+Enter / Ctrl+Enter), push with upstream awareness
- Branch display including detached HEAD state
- Git history pane with a real commit graph (lane rendering for merges and branches)
- Commit search and filter, click through to the remote commit page
File explorer
- Catppuccin icon theme
- Fuzzy search, keyboard navigation, inline rename, context actions
- Live updates when files change on disk
- Attach files and selections directly to the AI side-panel
Web preview
- Auto-detects local dev servers and opens them in a preview tab
- External URL preview via a native child webview
Themes and customization
- Custom themes built in-app, switch between bundled presets and your own
- Create your own themes, share them or import from the community
- Background images with adjustable opacity and blur
- Editor theme is independent from the app theme
AI
- BYOK providers: OpenAI, Anthropic, Google (Gemini), Groq, xAI (Grok), Cerebras, OpenRouter, DeepSeek, Mistral, plus any OpenAI-compatible endpoint
- Local / offline: LM Studio, MLX, Ollama
- Agentic workflow: plans, sub-agents, project memory via
TERAX.md, file read / write / edit / multi-edit / grep / glob, bash with approval gating, background processes - Coding-agent orchestration: spawn Claude Code in a terminal, inspect its output, and send follow-up work through approval-gated tools
- Composer: prompt snippets via
#handle, files via@path, voice input, attach-to-agent from explorer or selection - Custom agents with their own system prompt and tool subset
- Plan mode for multi-step work, generates and confirms before doing
Install
Latest installers are on the Releases page. Terax auto-updates from there.
Windows notes
- Default shell detection:
pwsh.exe(PowerShell 7+) ->powershell.exe(Windows PowerShell 5.1) ->cmd.exe. - WSL is a first-class workspace environment, not a wrapped subprocess.
Linux notes
- Arch / AUR:
yay -S terax-bin(orparu, etc.). Tracks the latest release. - NixOS / Nix: use the official flake -
nix profile install github:crynta/terax-ai(non-NixOS), or import the flake and addinputs.terax.packages.${pkgs.system}.teraxtoenvironment.systemPackages(NixOS). ThenixosModules.teraxoutput is also available for a simpler setup. - AppImage: needs FUSE. Without it:
./Terax_*.AppImage --appimage-extract-and-run. On Wayland with rendering glitches, tryWEBKIT_DISABLE_DMABUF_RENDERER=1. Otherwise the.deb/.rpmpackages link against the system GTK stack and tend to be smoother.
Configure AI
- Open Settings -> AI.
- Pick a provider and paste your API key. For local inference, point Terax at your LM Studio / MLX / Ollama endpoint.
- Keys are written to the OS keychain via
keyring. They never touch disk or localStorage.
Build from source
Prerequisites
- Rust (stable), https://rustup.rs
- Node 22+ and pnpm
- Tauri prerequisites for your platform, https://tauri.app/start/prerequisites/
Run
pnpm install
pnpm tauri dev # development
pnpm tauri build # production bundle
Checks
pnpm lint
pnpm check-types
pnpm test
cd src-tauri && cargo clippy --all-targets --locked -- -D warnings # Rust lint (matches CI)
cd src-tauri && cargo nextest run --locked # or: cargo test --locked
Tech stack
Tauri 2, Rust, portable-pty, React 19, TypeScript, Vite, xterm.js, CodeMirror 6, Vercel AI SDK v6, Tailwind v4, shadcn/ui, Zustand.
Contributing
Issues and PRs are welcome! Feel free to open issues, suggest features, or submit pull requests. See CONTRIBUTING.md and the architecture docs for more details.
Code signing
Windows builds are signed with a free code signing certificate provided by SignPath.io, certificate by the SignPath Foundation.
License
Terax is licensed under the Apache-2.0 License. For more information on our dependencies, see Apache License 2.0.