老仓库 / Legacy repository:https://github.com/feigeCode/onetcli ·
Native all-in-one workspace for databases, SSH, SFTP, port forwarding, terminals, remote desktop, monitoring, and AI.
Built with GPUI · Rust native desktop · GPU-accelerated rendering
中文 · Install · Latest Release · Features · Screenshots · Contributing
- Server-to-server SFTP — added a searchable endpoint switcher and direct file or directory copy between two remote servers without staging data on the local machine.
- Local terminals and AI — added launch-time terminal profile selection, platform-aware shell choices, and the terminal AI sidebar for local sessions with live terminal context.
- Notes document export — added extension-backed export to self-contained HTML, PDF, and Word DOCX files through a sandboxed Rust WASM exporter.
- Database workspace polish — added context menus for database object rows, stable result-panel scrolling, and fixes for SQL result summaries and pinned scrollbars.
- Remote desktop performance — RDP and VNC providers now stream incremental frame updates for more responsive sessions, with improved recovery for stalled VNC connections.
- Connections and credentials — the home workspace now separates personal and team keys, while SFTP endpoint headers make the active local or remote side explicit.
- Extensions, CLI, and release reliability — Redis and MongoDB native drivers moved into installable extensions, the global Navop CLI/Skill workflow is documented, and release builds can be repaired independently across platforms.
|
Navop is built with Rust and GPUI for a native desktop experience with GPU-accelerated rendering. |
Database management, SSH terminals, SFTP file transfer, port forwarding, serial connections, local terminals, and remote desktop (RDP/VNC) live in one app. |
|
Use the built-in AI assistant for natural language to SQL, query explanation, BI-style analysis, and chart generation. |
Open a remote terminal, browse files through SFTP, drag files into the sidebar, and edit remote files with syntax highlighting. |
Connect to MySQL, PostgreSQL, SQLite, DuckDB, SQL Server, Oracle, and ClickHouse from a single interface. Network database connections can route through per-connection SOCKS5 or HTTP CONNECT proxies, including authenticated proxies and SSH tunnels reached through a proxy. Browse schemas, tables, columns, indexes, foreign keys, procedures, functions, triggers, and sequences where supported.
Beyond the built-in drivers, Navop ships an extension marketplace that adds database drivers for Dameng DM, KingbaseES, GBase 8s, OceanBase, openGauss, Apache IoTDB, and a pure-Go Oracle driver that runs without Oracle Instant Client. Install the ones you need and they appear alongside the built-in connections.
Work with a SQL editor backed by syntax tooling, schema-aware browsing, table structure editing, query execution, explain support, and ER diagrams. Database object rows expose context actions, and result tabs keep their scrollbars pinned to the viewport for large or multi-statement result sets. Database compare tools support schema/data comparison, target selection, sync planning, and multi-table synchronization workflows.
Use the dedicated Redis viewer for multi-database key browsing, server-side pagination, binary-safe String inspection, and cluster connections. Explore MongoDB collections, inspect documents, run queries, and expose host-authoritative MongoDB tools through Public MCP from the same workspace.
The Notes workspace supports local Markdown documents, rich-text/Markdown round trips, Markdown bundles for whiteboards, syntax highlighting, Mermaid diagrams, and math rendering. Document locations, editor shortcuts, and AI Providers are configurable. Extension-provided renderers can add or update document formats independently, and a sandboxed WASM exporter can produce self-contained HTML, PDF, and Word DOCX files.
Open integrated SSH sessions, manage SFTP files, start port forwarding tunnels, connect to serial devices, and arrange terminals in native draggable split workspaces. Local terminal profiles support the system shell, PowerShell, Command Prompt, WSL, Git Bash, and custom programs with safely parsed arguments; choose a profile when opening a terminal instead of changing the global default first. The terminal AI sidebar works with both SSH and local sessions and uses the active terminal as its default resource context. The terminal also includes grouped quick commands, command history, broadcast input, bounded terminal.read diagnostics, and remote shell integration management. The SFTP workspace can switch either side between local storage and searchable remote endpoints, copy files directly between servers, upload by drag-and-drop or paste, and jump through path favorites. Terminal sessions can also paste clipboard images into compatible server-side TUI applications.
Create reusable SSH port forwarding connections from existing SSH/SFTP servers. Navop supports local forwarding for services such as databases or internal HTTP endpoints, plus dynamic SOCKS tunnels for routing tools through a remote host.
Edit remote files directly inside Navop with syntax highlighting and autocomplete. No need to open another editor or switch back and forth between terminal and file tools.
Open RDP and VNC sessions through installable remote desktop providers. Each connection can use a SOCKS5 or HTTP CONNECT proxy without requiring a provider protocol upgrade. Incremental frame streaming reduces full-frame work and keeps active sessions more responsive, while stalled VNC sessions can recover more reliably. Connect to Windows machines over RDP, or to any VNC server, and drive the remote desktop from the same workspace where your databases, terminals, and files live.
Use built-in server monitoring and native rendered charts to inspect remote machine status and data analysis output.
Chat with AI inside the app. Navop supports natural language to SQL, query explanation, BI-style data analysis, chart generation, streaming LLM responses, AI Agent workflows, and Function Calling for tool-based task execution. Navop also supports ACP (Agent Client Protocol), allowing external AI agents to connect through extensions; ACP extensions are currently available for Codex, Claude Code, and OpenCode. HTML code blocks can be opened in the browser or previewed in an in-app dialog, and generated terminal commands can be quickly pasted into a terminal session and run.
Navop includes an authenticated Public MCP runtime for external Codex, Claude, MCP clients, and automation. Enable it under Settings > General > MCP > MCP Server, select a permission profile, and expose only the tool groups you want under Settings > General > Tool Exposure.
The runtime binds to a dynamic loopback-only port and requires the 64-character token stored in Navop's user-only discovery file. Navop remains the only tool implementation, security, permission, approval, connection/session, and audit boundary. The built-in Agent continues to call the internal Rust ToolRegistry directly; it does not reconnect to Navop through npm.
External MCP clients use the separately published @navop/mcp stdio bridge. AI Agents use the separately published @navop/cli package and its bundled Skill:
npm install -g @navop/cli@latest
navop status --json
navop tools --json
navop schema <tool-name> --json
navop call <tool-name> --arguments '<json-object>' --json
npx -y @navop/mcp@latestThe Navop Skill gives an AI Agent a lower-context terminal workflow instead of registering the complete Navop tool catalog as native MCP tools in every turn. It uses navop status, navop db query, navop ssh exec, or the live tool schema/call interface. The Agent loads the compact Skill, then discovers a command or schema only when the task needs it. This avoids repeatedly placing a large set of tool names, descriptions, and JSON schemas into model context and can reduce repeated context and Token overhead when many tools are exposed.
The Skill and CLI do not bypass or replace the Navop host runtime. CLI commands still connect to the authenticated loopback Public MCP endpoint internally, and the running Navop application remains authoritative for tools, schemas, resource ids, Tool Exposure, permissions, approvals, sessions, results, and auditing.
| Agent integration | Context behavior | Best fit |
|---|---|---|
| Native MCP tools | The client may advertise many enabled Navop tools and schemas to the model on each turn. | Clients that prefer direct structured tool calling and can manage the larger tool context. |
| Navop Skill + terminal CLI | The Agent keeps a compact Skill and discovers status, commands, and schemas on demand before running navop ... --json. |
Codex and terminal-capable AI Agents that want broad Navop access with a smaller recurring context and lower token overhead. |
The npm packages version the shared client, CLI/Skill, and stdio bridge, not Navop's host tool registry. Tool names, descriptions, schemas, annotations, Tool Exposure groups, permission mode, sessions, and results come from the running Navop host through MCP initialize, tools/list, tools/call, and the read-only navop.runtime_status tool. Navop can therefore add or update host tools without requiring a synchronized npm release.
Current Public MCP capability groups include:
| Group | Current host capabilities |
|---|---|
| Runtime | compatibility metadata, permission guidance, Tool Exposure group states, live tools and schemas |
| SSH | isolated command execution, session diagnostics, background command poll/output/cancel |
| Visible terminal | bounded output reading, visible PTY execution, explicit interruption |
| SQL databases | schema, tables, descriptions, sample rows, read-only query, write-capable execution |
| Redis | active connections, command, keys, get, set |
| MongoDB | databases, collections, find, aggregate, count, indexes, validation, CRUD, explain |
| SFTP | list, stat, read, write, upload, download |
| Connections | list, find, show, kinds, schema, validate, save, delete, test, open, sessions |
| Workspaces | list and show |
| Internal functions | list registered host functions and call them through their live schemas |
Availability is always determined at runtime. A group disabled in Tool Exposure is not advertised as available, and connection/session-specific operations require a real resource id returned by Navop. Callers must not guess ids or bypass permission and approval decisions.
Navop permission profiles map to Public MCP behavior:
| Profile | Behavior |
|---|---|
Safe / deny |
read-only discovery is available; mutations are denied |
Confirm / ask |
mutations require approval in the Navop UI |
Auto / allow |
mutations run automatically; destructive intent must still be explicit |
Navop can install and inspect Codex and Claude Code MCP configurations, copy a generic MCP JSON configuration, and install/update the bundled navop Skill for Codex or Agents-compatible clients. The Skill does not embed a static tool manual or preload every tool schema. It teaches Agents to use navop, begin with status --json, inspect only the required command or live schema, and then operate the selected Navop resource.
npm install -g @navop/cli@latest
navop skill install --target codex --scope user
navop skill install --target agents --scope user
navop status --json
navop db query --help
navop tool schema <tool-name> --json
navop tool call <tool-name> --arguments '<json-object>' --json
npm view @navop/cli version
navop --versionThe baseline documentation uses @latest for the install/update source. The CLI must be installed globally before an Agent runs navop commands:
npm install -g @navop/cli@latest
navop status --jsonRepresentative read-only terminal workflows follow the same pattern. First discover the current connection or session identifiers; then inspect the live help or schema before running the operation:
navop connections sessions --json
navop ssh exec --target <ssh-session-id> --command 'uname -a' --json
navop sftp list --connection <ssh-connection-id-or-name> --path /var/log --json
navop redis get --connection-id <redis-connection-id-or-name> --key app:status --json
navop mongo find --connection-id <mongo-session-id> --database app --collection users --filter '{"active":true}' --limit 20 --json
navop db query --connection <database-connection-id-or-name> --sql 'SELECT 1' --json
navop terminal read --target <terminal-session-id> --lines 80 --jsonNavop uses native GPUI rendering and continues to tune heavy UI paths. Recent releases fixed font fallback/rendering issues that could cause garbled text, and reduced render-process blocking that could make connection lists and data lists stutter while scrolling.
Sync connections and settings across devices with encrypted key storage based on AES-GCM and Ed25519. Navop supports light and dark themes, English, Simplified Chinese, and Traditional Chinese.
| Database | SSH |
|---|---|
![]() |
![]() |
| SFTP | Redis |
|---|---|
![]() |
![]() |
| MongoDB | AI Chat |
|---|---|
![]() |
![]() |
| Monitoring | SFTP Sidebar |
|---|---|
![]() |
![]() |
| Remote File Editor | ER Diagram |
|---|---|
![]() |
![]() |
| Extensions |
|---|
![]() |
| Markdown Notes | Rich-text Notes |
|---|---|
![]() |
![]() |
| Whiteboard Notes |
|---|
![]() |
Download the latest build from the Releases page.
Release artifacts are currently published by platform:
| Platform | Architecture | Artifact |
|---|---|---|
| macOS | Apple Silicon, Intel | .dmg, .tar.gz |
| Linux | x86_64 | .tar.gz, .deb, .rpm, .AppImage |
| Windows | x86_64 | .msi, .zip |
Checksums are published as sha256sums.txt in each release.
On Windows, use navop-x86_64-pc-windows-msvc.msi for a bilingual English/Chinese per-user installer. It defaults to %LOCALAPPDATA%\Programs\Navop and appends the Navop subdirectory when you choose another writable parent directory. It also creates desktop and Start menu shortcuts; administrator privileges are not required for the default location. The .zip archive remains available for portable use and in-app updates.
If macOS blocks the app after installing the DMG with "Apple cannot check it for malicious software", run:
sudo xattr -rd com.apple.quarantine /Applications/Navop.appThe built-in Oracle driver requires Oracle Instant Client (Basic package). Download the version matching your platform and ensure the libraries are in your library search path. Alternatively, install the pure-Go Oracle driver from the extension marketplace, which has no Instant Client dependency.
- Open Navop and create your first database connection.
- Add an SSH host and open a remote terminal.
- Create a port forwarding connection from that SSH host when you need a local tunnel or SOCKS proxy.
- Open SFTP file management to browse remote directories or transfer files.
- Try Redis key browsing or MongoDB document browsing.
- Use the AI assistant in SQL or data analysis workflows.
- Rust 2024 edition
- Platform-specific system dependencies
macOS / Linux:
./script/bootstrapWindows (PowerShell):
.\script\install-window.ps1cargo run -p main# Build
cargo build
# Test
cargo test --all
# Lint
cargo clippy --workspace --all-targets
# Format check
cargo fmt --checkSee CONTRIBUTING.md for the full development guide.
| Category | Technologies |
|---|---|
| UI Framework | GPUI |
| Language | Rust |
| Databases | tokio-postgres, mysql_async, rusqlite, tiberius, oracle, clickhouse, duckdb |
| Database extensions | Dameng DM, KingbaseES, GBase 8s, OceanBase, openGauss, Apache IoTDB, pure-Go Oracle |
| Redis / MongoDB | redis, mongodb |
| SSH / SFTP / Port Forwarding | russh, russh-sftp, SOCKS5 over SSH direct-tcpip |
| Remote Desktop | RDP & VNC providers via extension runtime |
| Terminal | alacritty_terminal |
| Text Editing | ropey, tree-sitter, sqlparser |
| AI | llm-connector |
| Encryption | aes-gcm, sha2, ed25519 |
| i18n | rust-i18n |
Which databases are supported?
Navop has built-in database support for MySQL, PostgreSQL, SQLite, DuckDB, SQL Server, Oracle, and ClickHouse, plus dedicated Redis and MongoDB views. The extension marketplace adds Dameng DM, KingbaseES, GBase 8s, OceanBase, openGauss, Apache IoTDB, and a pure-Go Oracle driver, so domestic and specialty databases are covered alongside the mainstream ones.
Does Oracle need extra setup?
Yes. The built-in Oracle driver requires Oracle Instant Client to be installed and available through your system library search path. You can also install the pure-Go Oracle driver from the extension marketplace, which runs without Instant Client.
Where can I download Navop?
Use the GitHub Releases page. The current release workflow publishes macOS, Linux, and Windows artifacts with checksums.
Is Navop free?
All features are available without sponsorship. Navop-authored source is licensed under Apache License 2.0 and the Navop Supplementary License, while the Notes workspace includes the GPL-licensed Cditor dependency. Distributions must comply with all applicable third-party license terms.
How do I report bugs or request features?
Open an issue on GitHub Issues. For code changes, please read CONTRIBUTING.md first.
Navop is maintained by one person over the long term. If it saves you time, you can support the project through donations, stars, bug reports, or focused pull requests.
Donation is optional and does not unlock or restrict any features. See DONATE.md for WeChat Pay, Alipay, and PayPal options.
Official community channels:
ER diagram rendering is based on ferrum-flow.
Navop source code is licensed under Apache License 2.0.
The Notes workspace includes Cditor, a GPL-licensed dependency. The Cditor component and any distribution that contains it must comply with the applicable GNU GPL terms and the license notices provided by Cditor.
Navop-authored portions are additionally subject to the Navop Supplementary License, which adds the following restrictions on top of Apache 2.0. These supplementary terms do not replace or limit the licenses that apply to third-party components such as Cditor:
- No redistribution, resale, or repackaging as a standalone product
- No creating competing products or services based on this software
- No hosting on unauthorized distribution platforms
For licensing inquiries, contact xiaofei.hf@gmail.com.














