CLI tool
paean-ai/deeptide avatar
paean-ai/deeptide

DeepTide: DeepSeek's Swift-native macOS coding agent, and the two CLI packages around it

Built by DeepSeek, for DeepSeek — a Swift-native macOS coding agent

1,103 stars138 forksRustMIT

At a glance

What is it?
DeepTide is a coding agent family from Paean AI: a Swift macOS app, a Bun-based CLI that wraps Zero CLI, and a Rust port with a native egui desktop window. This article covers what each flavor is, how to install one, and where the documentation runs out.
Who is it for?
Adopt DeepTide if you are on macOS 15 or later and want a DeepSeek-first agent with a native app, or if you need a single Rust binary for headless CI. Do not adopt it expecting a self-contained npm package: the deeptide CLI is a thin redirect to @paean-ai/zero-cli and needs Bun on PATH, and the authoritative configuration reference lives in the upstream Zero CLI README, not here.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 28 days ago.
What is it written in?
Mainly Rust, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 17, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

What DeepTide actually is, and the three builds that share the name

DeepTide is a coding agent for the terminal and the desktop, built around DeepSeek models by default. The repository at paean-ai/deeptide is not one program. It is the community front door for three separate builds, and the README's own comparison table is the clearest place to see how far apart they are.

The first is DeepTide for macOS: a Swift 6 native binary, described as roughly 15 MB idle, running on macOS 15 and later. The README states it is "100% authored by DeepSeek V4." The second is the deeptide npm package, a TypeScript and Bun CLI that the README calls a thin redirect to @paean-ai/zero-cli, with about 50 MB resident. The third is deeptide-rs, a Rust binary of roughly 10 MB on disk with no runtime, living under crates/ and shipping a native desktop GUI built on egui rather than Electron or a webview.

The naming is the first thing to get right. Both CLI packages install commands, and they deliberately do not collide: deeptide and tide come from the Bun package, deeptide-rs from the Rust one. The README says you can install both and switch freely while the Rust port matures, and that there is no forced migration away from the Bun CLI. That is an unusually honest arrangement, and it also means "DeepTide" in a bug report is ambiguous until you know which binary produced it.

The provider story: DeepSeek by default, Anthropic protocol by configuration

The CLI talks to the DeepSeek API by default, matching the native app. It can also drive any endpoint that speaks the Anthropic protocol through BYOK. The README names Zhipu GLM, Volcengine, Paean, Qwen, Moonshot and self-hosted gateways as examples, and shows a --base-url flag pointed at open.bigmodel.cn.

This is a narrower compatibility claim than it first appears. "Anthropic-protocol-compatible" is a specific wire format, not a general OpenAI-compatible one. If your gateway only exposes /v1/chat/completions in OpenAI shape, the README gives you no path here. That is worth checking before you plan a migration.

The repository also carries a local inference runtime under native/: a hard-forked ds4 DeepSeek V4 Flash Metal engine, plus dsgo, described as a local OpenAI and Anthropic-compatible gateway intended to pair with DeepTide. The README does not document how to wire dsgo into the CLI's configuration, so treat the local path as something to read the source for rather than something the front page walks you through.

Installing DeepTide on macOS and running a first one-shot prompt

For Mac users the README recommends the native build from deeptide.sh. The install script downloads the signed build for your Mac architecture and installs both the deeptide and the shorter tide command.

bash
curl -fsSL https://deeptide.sh/install.sh | sh

After that, authenticate. The README lists two routes: Paean OAuth, described as multimodal-aware, or saving a DeepSeek API key directly. There is also a doctor subcommand for diagnosing the install and network.

bash
tide auth login
tide login
tide doctor

Running tide with no arguments launches the interactive REPL. For a single non-interactive answer, the README gives the -p flag. The example below is the one it uses, and the default provider path expects DEEPSEEK_API_KEY in the environment.

bash
export DEEPSEEK_API_KEY="sk-..."
tide -p "Explain the auth middleware"

On Linux and Windows the story changes. The prerequisites section states that Bun must be installed and on PATH, because the CLI runtime requires it, matching the underlying Zero CLI. The README is explicit that Bun does not replace your Node install. It gives three package-manager routes, all of which still need Bun at runtime.

bash
bun add -g deeptide
npm install -g deeptide
pnpm add -g deeptide

For the Rust binary the README gives a single npm command, which ships a native binary through a GitHub Releases postinstall step.

bash
npm install -g deeptide-rs

That postinstall is a real dependency on network access to GitHub Releases. On a locked-down CI runner or behind a proxy that blocks those hosts, the install can fail in a way that has nothing to do with the agent itself.

The Rust port's GUI shares config and sessions with its own CLI

The most concrete design decision in the README is that deeptide-rs's desktop window is a thin layer over the same engine the CLI uses. It reads the identical ~/.config/tide/settings.json and the project-level .deeptide/settings.json, so provider, model and API key are set once and both surfaces pick them up. Conversations save to the same on-disk store, which means a chat started in the GUI can be resumed from the terminal with deeptide-rs --resume, and a CLI session appears in the GUI sidebar.

The tool set is shared too: Read/Write/Edit, Bash, Glob/Grep, WebFetch, MCP servers and sub-agents are listed as available identically in both. The GUI adds markdown rendering, live reasoning output shown as thinking, tool-call cards and interactive tool approvals.

This is a better answer to the usual CLI-versus-GUI split than maintaining two configuration formats. The cost is that the GUI inherits every constraint of the CLI. If a setting is not expressible in settings.json, the egui window has no separate place to put it. The README does not describe any GUI-only configuration, which is consistent with that design but also means the GUI cannot paper over gaps in the CLI's config surface.

Where the documentation stops and the upstream README takes over

The single biggest limitation is that this repository is not the authoritative reference for the CLI. The README says so directly: for the full configuration surface, including the settings.json schema, hooks, permissions, MCP servers, sub-agents and model aliases, you are sent to the upstream Zero CLI README. That is a substantial part of what a user needs, and it lives in another project.

The practical consequence is version skew. The deeptide package.json pins @paean-ai/zero-cli at ^0.11.6, and the deeptide package itself is at 0.11.8. A caret range means the underlying CLI can move within 0.x minors under you, and any behavior you read about upstream may not match the version you have installed. The README does not document a lockfile strategy or a compatibility table.

Second, the macOS native app's source is in this repository, but the README tells most users to install from deeptide.sh instead. Source builders are pointed at the tree for modifying the native runtime or local inference components. What the README does not provide is a build walkthrough for the Swift app, so "build from source" here means reading the repository, not following a documented sequence.

Third, no releases were retrieved for this repository, so there is no changelog surface to consult for the Bun CLI or the Swift app. The last push to the repository was on 2026-08-22.

Choosing between DeepTide and a plain Zero CLI install

The honest alternative is upstream Zero CLI itself. The README states that the deeptide npm package is a DeepTide-flavored entrypoint powered by Zero CLI, and that you can install the upstream package directly with bun add -g @paean-ai/zero-cli.

The difference in approach is small but real. Installing @paean-ai/zero-cli gives you the engine without the redirect layer, the deeptide and tide command aliases, or the DeepSeek-default framing that the DeepTide package adds. If you already have a Zero CLI workflow and only want the DeepSeek defaults, the upstream package plus your own configuration is fewer moving parts. If you want the short tide command and the Paean-oriented onboarding that the macOS build shares, the DeepTide package is the wrapper for you.

What DeepTide adds that upstream does not is the other two flavors: the Swift macOS app and the Rust binary with its egui GUI. Neither is a wrapper around Zero CLI in the way the Bun package is. The Rust port is authored in this repository under crates/, and the macOS app is Swift. So the choice is not simply "wrapper or no wrapper." It is whether you want the single-vendor macOS experience, the cross-platform Rust binary, or the Zero CLI engine on its own.

Licence and the cost of keeping three builds in step

The repository is MIT licensed, and the Cargo workspace declares MIT for the Rust crates as well. MIT is permissive: it allows commercial use and modification with attribution and without a copyleft obligation on your own code. The repository also carries a NOTICE file at the top level, and the npm package lists NOTICE among its published files, which is the usual pattern for third-party attribution. If you redistribute a build, read NOTICE and the upstream Zero CLI's licence together, since the Bun CLI depends on it. None of this is legal advice; check the actual files for your distribution scenario.

The upgrade cost is the part worth weighing. You are tracking three artifacts with separate version lines: the npm package at 0.11.8, its @paean-ai/zero-cli dependency at ^0.11.6, and the Rust crates in this workspace, which use edition 2024 and pin a set of dependencies including clap 4.5.40, reqwest 0.12.24 and zip 6.0.0. The workspace lints deny unwrap_used, todo and dbg_macro, which is a stricter bar than most Rust projects set and suggests the crates are held to a consistent standard.

Because the README positions the Rust port as the future canonical cross-platform CLI while keeping the Bun CLI available indefinitely, the realistic upgrade path is: install deeptide-rs alongside deeptide, share the settings.json between them, and move over when the Rust tool set covers what you use. The README says both can be installed at once without conflict, which makes that trial low-risk. What it does not give you is a feature-parity matrix between the two, so you will have to diff the tool lists yourself.

Editorial conclusion

Adopt DeepTide if you are on macOS 15 or later and want a DeepSeek-first agent with a native app, or if you need a single Rust binary for headless CI. Do not adopt it expecting a self-contained npm package: the deeptide CLI is a thin redirect to @paean-ai/zero-cli and needs Bun on PATH, and the authoritative configuration reference lives in the upstream Zero CLI README, not here. Before committing, verify that https://deeptide.sh/install.sh serves a signed build for your Mac architecture, and check whether the deeptide-rs postinstall can reach GitHub Releases in your network.

Frequently asked questions

What is DeepTide?

DeepTide is a coding agent family from Paean AI built around DeepSeek models by default. It exists in three forms: a Swift-native macOS app, a Bun-based CLI installed as the deeptide npm package, and a Rust CLI with a native egui desktop window installed as deeptide-rs.

Is DeepTide a public company?

The repository does not address this. It is an MIT-licensed open source project under the paean-ai organization, and package.json lists an author of a8e, but nothing there describes corporate structure or ownership.

What is Deep Instinct?

This is not something the DeepTide repository covers. DeepTide is a coding agent for macOS and the terminal, and nothing in the README, package.json or Cargo.toml describes a security product called Deep Instinct.

Official sources

  1. Issues
  2. License: MIT
  3. paean-ai/deeptide on GitHub
  4. Project website
  5. README
Community notes

Community notes