Skip to content

Repository files navigation

tidev

AI coding agent built in pure Rust. tidev reimplements the interaction model of OpenCode with a focus on performance and memory efficiency. It also introduced richer extended features.

tidev underwent a radical rewrite, with version v0.7.0 being the rewritten version. The rewrite removed most of the features I didn't need and included architectural restructuring and performance optimizations to the best of my ability. The last-full tag marks the last commit that contains a complete feature.


Screenshots

welcome chat


Features

  • Beautifully designed TUI -- tidev features a meticulously designed TUI, with significant effort put into maintaining high performance and ease of interaction. For the best user experience, it is recommended to use Nerd Fonts and a modern terminal emulator (Ghostty, WezTerm, etc.).

    • If you are using Windows Terminal, you will not have access to the multi-line paste feature; this is a known limitation of Windows Terminal.
    • If you are using a terminal that does not support graphics protocols (such as Alacritty), tidev will not be able to display images. However, this will not affect other functions.
  • Multi-Provider LLM Support -- Anthropic (Claude), OpenAI Chat Completions, OpenAI Responses, Gemini, and the OpenAI Codex subscription provider. Codex uses OAuth PKCE/device-code login and never accepts an API key. Configurable presets with fallback providers and models.

  • Specialized Sub-Agents -- Four agent roles for delegating tasks: Explorer (code search), Librarian (documentation), Oracle (architecture review), and Fixer (fast implementation). Each agent has a tailored system prompt and tool set. Different subagents can be bound to different models. tidev allows you to temporarily disable the subagent to prevent model abuse.

  • Built-in Tool Set

    • File operations: read, write, edit, apply_patch
    • Code search: list, glob, grep
    • Shell command execution with permission control
    • Session management: task delegation, todo tracking, question prompts
    • Web integration: search (Exa and more) and page fetching (Markdown, HTML and plain text)

For GPT-5 and GPT-6 series models, tidev will automatically enable the apply_patch tool and disable the write/edit tools to suit their tool calling style. The implementation of apply_patch is precisely aligned with the open-source implementation in OpenAI Codex. For other models, write/edit is used and apply_patch is disabled.

  • Model Context Protocol (MCP) Support: MCP was supported in versions v0.6 and earlier, but I've never tested it. The rewritten tidev has temporarily removed MCP support.

  • Git Snapshot & Revert -- Automatically track file changes in the workspace using git. View diff statistics and revert changes with /undo when needed. Git state is precisely tracked before and after tool calls, and it is usually able to correctly exclude external modifications not generated by tools.

  • Permission System -- tidev requests user approval when the model attempts to read files outside the workspace or sensitive files (defined in .tidev/sensitive.txt). In Plan mode, tidev automatically intercepts the write/edit/apply_patch toolcalls and performs rule-based checks on commands executed by the shell tool, which can usually effectively filter out most write commands.

  • Cross-platform support -- Primarily, compatibility with Windows. tidev has meticulously refined all path-related features to ensure full Windows compatibility. tidev also supports using Git Bash on Windows to fully leverage the model's command capabilities (given their typically greater familiarity with Unix commands).

  • Session Persistence -- All conversations are stored in SQLite. Sessions, workspaces, messages, tool events, and reverts survive restarts. Large database columns are compressed using zstd at the application layer to ensure a stable increase in database file size.

  • Agent Skills -- tidev includes several built-in skills and allows you to create your own.

  • Cost-friendly -- tidev was designed with the goal of maximizing the use of context caching.

    Statistics for a real session using a DeepSeek V4 Flash model:

    • Context 415K
    • Total Tokens 117.6M
    • Cached Tokens 117.4M, average cache hit rate 99.8%
    • Non-cached Inputs 236K
    • Outputs 215.2K

CLI Session Inspection

Session history can be inspected directly from the CLI without starting the TUI or creating an intermediate export:

# List root and child sessions
tidev session list

# Search sessions by title or UUID
tidev session list --query "keyword"

# Show a complete session
tidev session show <SESSION_UUID>

# Show one message from a session
tidev session show <SESSION_UUID> --message-id <MESSAGE_UUID>

# Get the complete inspection record as JSON
tidev session show <SESSION_UUID> --format json

Session export uses one command with an explicit format. SQLite remains the default and importable format:

tidev export --session <SESSION_UUID> --output ./tidev-export.db
tidev export --format jsonl --session <SESSION_UUID> --output ./tidev-export.jsonl

Performance

Test results on macOS 27:

Page OpenCode 1.18.4 Memory tidev v0.7.0 Memory
Welcome page ~510 MB 7.1 MB
simple session ~580 MB ~30 MB
complex session >1GB ~60 MB
Metric OpenCode 1.18.4 tidev 0.7.0
Binary size 132 MB 13 MB

It should be noted that OpenCode has a built-in web client, but tidev does not.


How to Pronounce It?

I'd like to pronounce it as "tide-v", but "ti-dev" should also be fine.


Install

Via npm (recommended)

npm install -g tidev

Via Homebrew

brew tap eslzzyl/tap
brew install tidev

GitHub Releases

Download the pre-built binary for your platform from the latest release.

From source

Requires Rust stable toolchain.

git clone https://github.com/Eslzzyl/tidev.git
cd tidev
cargo install --path . --locked

Note: The tidev crate is no longer published on crates.io. Use the methods above instead.


Version Management

# Bump to a new version (updates Cargo.toml, Cargo.lock, and npm/package.json)
./scripts/bump-version.sh 0.6.0

# Push the tag to trigger CI release
git push origin master --tags

Configuration

  • Config file: ~/.config/tidev/config.toml
  • Auth file: ~/.local/share/tidev/auth.json
  • Session database: ~/.local/share/tidev/sessions.sqlite3

Provider presets in the repository root (presets.toml) are merged with user configuration at runtime.

About

Yet another agent harness in Rust

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages