Sandbox
@IlhamriSKY/TEDI

Tauri desktop app for terminal, AI, and Git workflows

TEDI is a single-window desktop app for terminal work, remote shells, SQL browsing, code editing, AI assistance, browser automation, API calls, and Git. It is built with a Rust backend and a React webview, and it adds features through runtime-installed extensions.

162 stars13 forksTypeScriptUpdated 8d ago
Who it's for

Builders who want terminal, SSH, AI, browser, and Git tools in one desktop window.

What it delivers

You can move through coding, remote work, and review tasks without bouncing between separate apps.

What it does

Terminal multiplexer

Runs native PTY terminals with splits, tab groups, shell integration, search, link detection, and per-workspace layouts.

SSH and SFTP

Connects to remote hosts, opens shells, and browses or transfers files through saved connections.

SQL explorer extension

Lets you query MySQL, PostgreSQL, and SQLite with a schema tree, inline edits, and SSH tunnels.

Code editor

Provides a CodeMirror editor with language support, AI autocomplete, diff view, Vim mode, and preview.

AI-native agent

Includes an agent with multiple providers, local model support, plan mode, MCP, sub-agents, memory, and approvals.

Browser extension

Embeds a Chromium browser pane with tabs, DevTools control, console errors, and installed browser profiles.

API client extension

Adds a Postman-style client with collections, environments, auth, scripts, runners, and import/export.

Source control and extensions

Shows Git diffs and SCM tools and lets you install extensions from zip files or GitHub releases.

How to get it

  1. 1TEDI ships no extensions in the binary; every one (including the SQL explorer and the…
    Settings → Extensions → From file       (pick a local .zip)
    Settings → Extensions → From GitHub     (paste owner/repo)
    Settings → Extensions → Check updates   (re-check releases/latest)
  2. 2Per-extension icon, namespaced settings/secrets/storage, and a permission-gated host…
    tedi [PATH]          # open a folder or file in TEDI
    tedi .               # open the current directory
    tedi ext <subcmd>    # manage extensions headlessly (install / list / update / ...)
    tedi theme <subcmd>  # manage themes from the terminal
    tedi --help | --version | --update
  3. 3Prereqs: Rust stable (rustup), Node 20.19+ / 22.12+ with pnpm, and Tauri's platform…
    pnpm install
    pnpm tauri:dev     # dev (isolated data dir)
    pnpm tauri build   # production bundle
  4. 4Pre-PR checks (full list in CONTRIBUTING.md)
    pnpm exec tsc --noEmit && pnpm lint:imports && pnpm format:check
    cd src-tauri && cargo clippy && cargo fmt

README

TEDI

TEDI

Terminal Director

One lightweight app. Eight features. Your whole dev workflow in a single window.

license platform no Electron no telemetry


What is TEDI?

TEDI (Terminal Director) folds eight tools you reach for every day (a terminal, SSH client, DB browser, editor, AI agent, browser, API client, and Git) into one window, so you stop alt-tabbing. Built on Tauri 2, so a Rust core owns every OS resource and the UI is a single webview: no Node runtime, no bundled Chromium, and a resident footprint closer to a terminal than to an IDE. No telemetry; API keys stay in the OS keychain, and it runs fully offline against a local model if you want.

The eight features

#FeatureWhat it does
1Terminal multiplexerNative PTY terminals (zsh / bash / fish / pwsh) on xterm.js + WebGL: split panes, tab groups, shell integration (OSC 7 / 133), inline search, and link detection. Inactive tabs keep streaming. Each workspace holds its own tab layout and working dirs and reopens exactly where you left it.
2SSH connectionConnect to remote hosts (russh), open remote shells, and browse/transfer files over an integrated SFTP explorer, all from a saved connection manager.
3SQL explorer (extension)Query MySQL, PostgreSQL and SQLite from a dedicated panel, with a schema tree and inline row edits. Reaches a database behind a bastion over an SSH tunnel. Ships as an extension (feature 8), so it installs and updates at runtime.
4Code editorCodeMirror 6 for TS/JS, Rust, Python, PHP, HTML/CSS, JSON, Markdown, C/C++, Java, C#, SQL, and more, with inline AI autocomplete, diff view, Vim mode, and Markdown/image preview.
5AI-native agentBring-your-own-key agent across eleven providers (OpenAI, Anthropic, Google, xAI, Cerebras, Groq, DeepSeek, SumoPod, AgentRouter) and local models via LM Studio or any OpenAI-compatible server (Ollama, llama.cpp, vLLM). Plan mode, MCP, ten sub-agents, voice input, project memory via TEDI.md, and tools gated by approval.
6Browser (extension)A real Chromium in a pane, driven over the DevTools Protocol: address bar, tabs, and Chrome Web Store extensions (an ad blocker, say) that persist in its own profile. The agent drives the same tabs you do: it reads the page's accessibility tree rather than scraping the DOM, clicks and types with trusted input, and drains console errors to find out why your page broke. Reuses the Chrome, Edge, Brave or Chromium already installed and fetches one only if there is none, so the TEDI download is unaffected. Ships as an extension (feature 8).
7API client (extension)Postman-style workbench: collections, environments and variables, auth (Bearer / Basic / API key / OAuth 2.0), every body mode, pre-request and test scripts, a collection runner, and Postman / OpenAPI / cURL import-export. Also an extension (feature 8).
8Source control + extensionsInline Git diff / SCM pane, and a first-class extension system: install from a .zip or GitHub release to add settings, AI tools, commands, keybindings, panels, and status / header / sidebar items.

Everything is fully themeable (presets, custom colors, transparency) while staying lightweight.

Install

Pre-built binaries: Releases (Windows, macOS, Linux .deb / .rpm / .AppImage). Download for your OS and install; TEDI auto-checks for updates.

Download size

TargetSize
Windows .exe9.4 MB
macOS .dmg11.3 MB (Intel) / 10.8 MB (Apple silicon)
Linux .deb / .rpm11.2 MB
Linux .AppImage95.6 MB. It carries its own GTK/WebKit runtime; the .deb and .rpm use the system one
Installed on disk (Windows)~19 MB

It stays this small because the UI is one webview provided by the OS: no Node runtime and no bundled Chromium. Extensions are installed at runtime and are not in the download: the Browser extension, for instance, drives the Chrome, Edge, Brave or Chromium already on the machine and only fetches its own engine (~170 MB, once) when there is none.

Screenshots

TEDI screenshot 1 TEDI screenshot 2

TEDI screenshot 3 TEDI screenshot 4

TEDI screenshot 5

Configure AI

Settings → AI, pick a provider and paste your API key. Keys go to the OS keychain via keyring, never to disk or localStorage. Full list: PROVIDERS in src/modules/ai/config.ts.

Running fully local? Two routes, both keyless:

  • LM Studio is its own provider. Start its server and point TEDI at it (default http://localhost:1234/v1).
  • OpenAI Compatible takes any server that speaks the API, and you can add several at once. Presets ship for Ollama (:11434), llama.cpp (:8080), vLLM (:8000), plus OpenRouter and 9Router. A localhost / 127.0.0.1 endpoint needs no API key; leave the field blank.

The same providers back inline autocomplete (Settings → AI → Autocomplete), so ghost text works on a cloud key or entirely offline. Set the model id yourself when your server names models its own way (qwen2.5-coder:7b, a GGUF filename).

Extensions

TEDI ships no extensions in the binary; every one (including the SQL explorer and the API client, features 3 and 7) installs at runtime. Re-installing the same manifest.id replaces the old copy, so the same path handles updates.

Settings → Extensions → From file       (pick a local .zip)
Settings → Extensions → From GitHub     (paste owner/repo)
Settings → Extensions → Check updates   (re-check releases/latest)

Per-extension icon, namespaced settings/secrets/storage, and a permission-gated host API. Authoring guide: extensions/README.md. Reference extension: Discord Rich Presence.

CLI

tedi [PATH]          # open a folder or file in TEDI
tedi .               # open the current directory
tedi ext <subcmd>    # manage extensions headlessly (install / list / update / ...)
tedi theme <subcmd>  # manage themes from the terminal
tedi --help | --version | --update

If TEDI is already running, the request forwards to the existing window (no second instance). On macOS / Linux AppImage the tedi command is not on PATH by default: Settings → General → "Install tedi command in PATH" creates a shim at ~/.local/bin/tedi. Windows' installer handles this.

Architecture

A Tauri 2 app: a React 19 webview (src/) talks to a Rust backend (src-tauri/) via invoke() and streaming Channels. See ARCHITECTURE.md for a one-page map, then TEDI.md for the per-module reference.

Build from source

Prereqs: Rust stable (rustup), Node 20.19+ / 22.12+ with pnpm, and Tauri's platform prereqs.

pnpm install
pnpm tauri:dev     # dev (isolated data dir)
pnpm tauri build   # production bundle

Pre-PR checks (full list in CONTRIBUTING.md):

pnpm exec tsc --noEmit && pnpm lint:imports && pnpm format:check
cd src-tauri && cargo clippy && cargo fmt

Notes per platform

  • Windows: SmartScreen warns on first launch (unsigned); click More info > Run anyway. Shell priority: pwsh.exe, powershell.exe, cmd.exe.
  • Linux: TEDI turns WebKitGTK's DMA-BUF renderer off by itself on anything but Mesa-backed GNOME/KDE/COSMIC, and on any session with no DRM render node, because without a working EGL display the web process aborts with EGL_BAD_PARAMETER before the window opens. It prints the reason on stderr; force the decision either way with WEBKIT_DISABLE_DMABUF_RENDERER=1 (safe) or =0 (hardware). App opacity / glass needs a running compositor, so on a bare tiling WM start one (picom) or leave that setting off. AppImage needs FUSE (else --appimage-extract-and-run, or use the .deb / .rpm); on Arch that is the fuse2 package, and .deb / .rpm are not usable there.
  • macOS: minimum 10.15. Unsigned builds may trip Gatekeeper; drag to /Applications, run xattr -cr /Applications/TEDI.app once, then open from Finder.

Credits

TEDI is a fork of crynta/terax-ai@v0.5.9 by Crynta. The Tauri/Rust backend, the xterm.js terminal, the CodeMirror editor, and the AI agent pipeline are the work of Crynta and the Terax contributors. Same Apache-2.0 license; if TEDI is useful, please star upstream Terax.

License

Apache-2.0. See LICENSE and NOTICE for required attribution.

Files in the repo

Repository payload36 top-level entries
  • .github
  • docs
  • extensions
  • public
  • scripts
  • src
  • src-tauri
  • .editorconfig
  • .gitattributes
  • .gitignore
  • .nvmrc
  • .prettierignore
  • .prettierrc.json
  • ARCHITECTURE.md
  • CHANGELOG.md
  • CLAUDE.md
  • CODE_OF_CONDUCT.md
  • components.json
  • CONTRIBUTING.md
  • debug.html
  • doctor.config.json
  • float.html
  • index.html
  • LICENSE
  • NOTICE
  • package.json
  • pnpm-lock.yaml
  • pnpm-workspace.yaml
  • README.md
  • SECURITY.md
  • settings.html
  • TEDI.md
  • tedi.png
  • tsconfig.json
  • tsconfig.node.json
  • vite.config.ts

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More tools

JuliusBrussee/
caveman

🪨 why use many token when few token do trick — Claude Code skill that cuts 65% of tokens by talking like caveman

105k
1 add
MemPalace/
mempalace

The best-benchmarked open-source AI memory system. And it's free.

59k
stablyai/
orca

Orca is the ADE for working with a fleet of parallel agents. Run any coding agent with your own subscription. Available on desktop, mobile and remote runtime.

66k

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

132k

Never stop coding. Free MIT AI gateway: one endpoint, 352 providers (150+ free), 1200+ models Kimi, Claude, GPT, Gemini, GLM, DeepSeek, MiniMax. Works with Claude Code, Codex, Cursor, OpenCode, Cline & Copilot. Quota-aware auto-fallback, RTK+Caveman compression saves 15-95% tokens, MCP/A2A, Desktop/PWA. Built by 550+ contributors

64k
headroomlabs-ai/
headroom

Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.

71k