v0.4.20 · What's new

Terminal
Director.

TEDI folds eight everyday dev tools into one lightweight window: terminal, SSH/SFTP, database browser, editor, AI agent, in-app browser, and Git. Built on Tauri 2. No telemetry.

tedi - interactive shell
tedi 0.4.20 - interactive demo shell
Type help to see commands, or try ask.
tedi ~
help for commands · ask to chat with AI
Eight Tools · One WindowTerminal · Splits · Tab GroupsSSH · SFTP File TransferAI Browser ControlSQL ExplorerVim Motions · Marks · RegistersWorkspaces · Persistent SessionsBYOK or Fully Localtedi CLITEDI.md Project MemoryTauri 2 · ~7–10 MBNo TelemetryKeys in KeychainApache-2.0 · Free Forever
[ 01/ 08 ]·Contributors

Built by the community

TEDI is Apache-2.0 and built in the open. Every name here helped shape it.

[ 02/ 08 ]·Features

Built for real developer workflows

Eight tools that used to be eight windows, now one, and they talk to each other.

Terminal
01

Splits, tabs, workspaces

xterm.js + WebGL terminal with native PTY and grouped tabs, in workspaces that reopen exactly where you left them.

SSH
02

Remote hosts + SFTP

russh remote terminals with an integrated SFTP explorer and saved connections.

SQL ExplorerExtension
03

Query any database

Query MySQL, PostgreSQL, and SQLite with a schema tree and inline row edits.

Editor
04

CodeMirror 6, real Vim

CodeMirror 6 with real Vim, broad language support, and inline AI autocomplete.

AI Agent
05

BYOK or fully local

Bring your own key or run fully local, with multi-agent workflows and gated tools.

AI Browser
06

Agent drives a real browser

A native webview the agent navigates, reads, types, and clicks, not just screenshots.

API ClientExtension
07

Postman-style workbench

Collections, environments, auth, scripts, and a runner, with Postman, OpenAPI, and cURL import-export.

SCM + Extensions
08

Git diff + plugins

Inline Git diff and staging, plus plugins for themes, commands, and AI tools.

[ 03/ 08 ]·Under the hood

Small, fast, and private

Native OS webview via Tauri 2, not a bundled browser. It shows.

~7–10MB
Install size
~300ms
Cold start
0
Telemetry, ever
8tools
One window
[ 04/ 08 ]·Screens

In the wild

Watch the demo, then browse real screenshots from the latest build.

00 / DemoYouTube · HD
[ 05/ 08 ]·Download

Pick your platform

Updater-signed builds on GitHub Releases.

/windowsx64

Windows 10 / 11

NSIS installer (LZMA).

Notes
  • Unsigned warning: More info → Run anyway
  • Shell priority: pwsh → powershell → cmd
  • Windows 10 / 11 (x64)
/macosUniversal

macOS 10.15+

Apple Silicon and Intel builds.

Notes
  • Ad-hoc signed, not notarized
  • Drag to /Applications, then run once:
    $ xattr -cr /Applications/TEDI.app
/linuxx86_64

Linux

Debian, Fedora, or portable AppImage.

Notes
  • Blank window? Try WEBKIT_DISABLE_DMABUF_RENDERER=1
  • AppImage needs FUSE, or --appimage-extract-and-run
  • Or install .deb / .rpm directly
[ 06/ 08 ]·Changelog

What's new

The latest two releases.

v0.4.20Latest09-08-2026

The Files tree docks to the right panel too

  • The Files tree can move to the right panel, and back: every other sidebar section, Source Control, Remote, Workspaces and the ones extensions contribute, could be handed to the right column by the button in its header or by dragging its grip across, but the primary folder tree was pinned left. Two things had kept it there, a right column that held one surface at a time so the tree would have contested that slot with the Secondary Folder Tree extension, and a guard written for extension panels that closed a docked built-in section the instant it opened; the column stacks its surfaces now and that guard knows about built-in sections, so neither reason survives. It moves by the same "Move to right panel" button and the same drag as its neighbours, comes back by the button on the docked copy, closes to a status-bar icon that reopens it, and remembers where you left it across a restart. The tree draws no header until a folder is open, so the move button appears with the folder
  • The zoom pill sits to the left of the AI usage meters: it was grouped with the status bar's action buttons, which left it stranded after the meters, the extension icons and a divider, away from the corner the eye goes to when the zoom level is the thing being read. It has a group of its own immediately before the usage meters now, still appears only while the zoom is away from 100%, and its divider goes with it
v0.4.1808-08-2026

Font ligatures switch off · markdown preview per pane

  • The code editor's font ligatures can be turned off: a coding font fuses => into an arrow and != into a not-equals, which is a font feature and not an edit, but it reads as one when you are hunting for the characters you actually typed. Settings, Code Editor, Font ligatures switches it, on by default so nothing changes for anyone who likes them, and a single CSS variable drives the editor, the diff panes and an extension's own editor together, so the three cannot disagree about whether a pair is drawn as one glyph
  • The markdown preview toggle moved out of the toolbar onto the pane it acts on: it sat in the app header beside the word-wrap button, so two markdown files open side by side shared one button, and it could only ever address whichever pane had focus. It now lives in each pane's own header next to the float button, which lets two panes sit in different modes and puts the control beside the text it switches
  • Selecting text in a dialog no longer drags the whole window: dragging across the text of an SSH connection dialog moved the app, and double-clicking a word maximised it. The window-drag handler lives on the header row and the SSH menu that owns those dialogs is inside that row, and React sends an event up the component tree rather than the DOM tree, so a mousedown on a dialog portaled to body still arrived at the header; the drag-region markers that already guard the tab strip could not help, because they are found by walking the DOM and a portaled dialog has no header in its DOM ancestry. The handler now ignores anything not genuinely inside the row it is attached to, which covers the dropdown menus, tab context menus and tooltips the header opens as well
[ 07/ 08 ]·Extensions

Official extensions

First-party extensions for TEDI. Versioned independently of the core app.

Proven primitives, nothing exotic

Rust for the backend, Tauri 2 for the shell, React 19 + xterm.js + CodeMirror for the surface. Just fast.

Frontend
React 19
TypeScript
xterm.js (WebGL)
CodeMirror 6
Backend
Rust
Tauri 2
portable-pty · russh
OS Keychain
License
Apache-2.0
Origin
Fork of Terax v0.5.9
[ 08/ 08 ]·FAQ

Frequently asked questions

TEDI, the Terminal Director, folds eight everyday dev tools (a terminal with workspaces, SSH/SFTP, a database browser, a code editor, an AI agent, an in-app browser, an API client, and Git) into one lightweight window built on Tauri 2.

Because the terminal is where the work is directed from: TEDI puts your shells, remote hosts, editor, database, Git, and AI agents on one stage and lets you cue them from a single window instead of alt-tabbing between apps.

The installed app is roughly 7–10 MB and cold-starts in about 300 ms, because it uses the OS webview via Tauri 2 rather than bundling a full Chromium runtime.

Windows 10/11 (x64), macOS 10.15+ (Apple Silicon and Intel), and Linux (Debian/Ubuntu .deb, Fedora/RHEL .rpm, and a portable AppImage).

No. There is zero telemetry. API keys and secrets are stored in your operating system keychain, never on a remote server.

You can bring your own key across ten providers (OpenAI, Anthropic, Google, xAI, Cerebras, Groq, DeepSeek, SumoPod, LM Studio, and any OpenAI-compatible server), or run fully local and keyless against Ollama, llama.cpp, or vLLM. Plan mode, skills, MCP, sub-agents, and approval-gated tools work either way.

Yes. TEDI is licensed under Apache-2.0 and free forever. Issues, PRs, and ideas are welcome on GitHub.

No extension ships inside the binary: all nine first-party ones (SQL Explorer, the API Client, AI usage meters, beautify, remote access, RTK bridge, screenshots, a second folder tree, and Discord Rich Presence) install at runtime from a .zip or a GitHub release, and are versioned independently of the core app. Every install shows the permissions, risk tier, and AI tools it contributes before you accept.

Ship

Open it up.

Open source under Apache-2.0. Issues, PRs, and ideas welcome.