Windows 安装时可能弹出 SmartScreen 提示,需点「More info」→「Run anyway」;从源码构建需先执行 corepack enable 并固定 yarn 4.3.1,再单独构建 @voiden/core-extensions;gRPC、WebSocket 等协议需安装对应插件后才可用

voiden
VoidenHQApache-2.0活跃维护用纯 Markdown 编写、测试和文档化 API 请求,支持复用、替换与版本管理,离线可用且原生兼容 Git,可作为 Postman/Insomnia 的替代品。
Design, Test and Document APIs in plain Markdown. Compose Requests with API blocks. Reuse, Replace & Version everything just like code. Offline, Truly Git Native, No Lock-in.
brew install voidenREADME 未说明硬件要求;桌面端提供 macOS(Apple Silicon 与 Intel)、Windows、Linux 安装包,Runner CLI 需 Node.js 18+
离线 Git 原生的 API 工作台,用纯文本 .void 文件编写、测试和文档化接口
用纯 Markdown 编写、测试和文档化 API 请求,支持复用、替换与版本管理,离线可用且原生兼容 Git,可作为 Postman/Insomnia 的替代品。
核心能力
- 用 .void 纯文本文件把请求、测试与文档放在同一处
- 把请求拆成 endpoint、auth、params、body 等可复用块
- 支持 REST、GraphQL、gRPC、WebSocket,协议以插件形式装卸
- 可导入 Postman、Insomnia、Swagger/OpenAPI 集合
- 提供 headless CLI 在终端和 CI 中批量运行 .void 文件
容易踩的坑
- v2.4.0Voiden v2.4.0最新正式版2026-11-04 · 2026-11-04 11:45 UTC
Stable: .void Block Diffs, Multi-Repo Source Control & Shell Picker
Stable release rolling up v2.4.0-beta.1 and beta.2 plus newer changes: .void diffs and merge conflicts as real Voiden blocks, Source Control across multiple repos, a terminal shell picker, plugin-provided variables, per-section Jump and Retry in the response panel, Electron 44, and fixes across requests, gRPC, Git and plugins.
Added
- Diffs of .void files show as native Voiden blocks instead of raw Markdown (#606) — contributed by @simranxdhindsa
- Changed blocks are marked Added, Removed or Modified, with the changed words highlighted inside each block (#606) — contributed by @simranxdhindsa
- Split and Unified views keep the old and new blocks aligned, with a Rendered/Source toggle for .void files (#606) — contributed by @simranxdhindsa
- Block diffs work in Commit History, branch comparison, uncommitted changes and Open File at This Commit (#606) — contributed by @simranxdhindsa
- File header changes, like version, are listed in a separate note instead of mixed into the blocks (#606) — contributed by @simranxdhindsa
- Merge conflicts in .void files show as block cards with Keep Current, Keep Incoming and Keep Both (#607) — contributed by @simranxdhindsa
- The conflict view checks the result is a valid .void file before saving, with All Current/All Incoming/Both bulk actions (#607) — contributed by @simranxdhindsa
- Images and other binary files show as previews or file cards in diffs, file previews and conflicts (#614) — contributed by @simranxdhindsa
- Source Control shows status letters (M, U, A, D, R) next to changed files (#607) — contributed by @simranxdhindsa
- Commit History is resizable and has a toolbar for Go to current commit, Fetch, Pull, Push and Refresh (#607) — contributed by @simranxdhindsa
- The CLI install command in Settings has a Copy button (#613) — contributed by @simranxdhindsa
- The HTTP QUERY method has its own color (#599) — contributed by @muhammadlutf1
- Newly released community plugins are announced in the new plugins toast
- Source Control can switch between the Git repos inside a project
- New terminals can open with any installed shell, picked from the new terminal button (#598)
- A default terminal shell can be set in Settings, or left on automatic (#598)
- Main-process plugins can provide their own {{namespace.*}} variables, like {{vault.api_token}}
- Response panel section headers have Jump to request and Retry buttons for that section
Improved
- Response panel section headers show the request URL on hover instead of inline
- Commit History animates open and closed, and expanding a commit no longer makes the panel jump (#607) — contributed by @simranxdhindsa
- Upgraded to Electron 44 and resolved Dependabot alerts
- Smaller app package by dropping unused terminal prebuilds
Fixed
- Source Control no longer freezes on repos with many untracked files (#607) — contributed by @simranxdhindsa
- Large binary files no longer freeze the window in diffs (#614) — contributed by @simranxdhindsa
- No loader flash when switching files in Commit History (#618) — contributed by @simranxdhindsa
- Windows no longer open blank after using File > Open Recent, and already-broken windows are repaired on start (#611) — contributed by @simranxdhindsa
- Installing the voiden terminal command works on Apple chip M
- v2.4.0-beta.2Voiden v2.4.0-beta.2pre-release2026-11-02 · 2026-11-02 11:18 UTC
查看更新说明
Multi-Repo Source Control and Terminal Shell Picker
Beta release: Source Control can switch between Git repos in a project, terminals can use any installed shell, plugins can provide their own variables, plus fixes for Prettify, the command palette and plugin READMEs.
Added
- Source Control can switch between the Git repos inside a project
- New terminals can open with any installed shell, picked from the new terminal button (#598)
- A default terminal shell can be set in Settings, or left on automatic (#598)
- Main-process plugins can provide their own {{namespace.*}} variables, like {{vault.api_token}}
Fixed
- Prettify keeps unquoted {{variables}} intact in a JSON body (#624) — contributed by @RagedPanda
- A plugin with a malformed command no longer breaks the command palette
- Images and relative links in plugin READMEs now load in the Extensions view
- A file with a single request no longer shows a section line in the response panel
What's Changed
- Feature/variable provider api by @phurpa-tsering in https://github.com/VoidenHQ/voiden/pull/621
- fix: keep template variables intact when prettifying a JSON body by @RagedPanda in https://github.com/VoidenHQ/voiden/pull/624
New Contributors
- @RagedPanda made their first contribution in https://github.com/VoidenHQ/voiden/pull/624
Full Changelog: https://github.com/VoidenHQ/voiden/compare/v2.4.0-beta.1...v2.4.0-beta.2
- v2.4.0-beta.1Voiden v2.4.0-beta.1pre-release2026-10-27 · 2026-10-27 10:45 UTC
查看更新说明
Git Diffs for .void Files, Block by Block
Beta release led by @simranxdhindsa's work on Git: .void diffs and merge conflicts now show as real Voiden blocks instead of raw Markdown, plus image and binary previews, Source Control upgrades, Electron 44, and fixes across requests, gRPC and the CLI.
Added
- Diffs of .void files show as native Voiden blocks instead of raw Markdown (#606) — contributed by @simranxdhindsa
- Changed blocks are marked Added, Removed or Modified, with the changed words highlighted inside each block (#606) — contributed by @simranxdhindsa
- Split and Unified views keep the old and new blocks aligned, with a Rendered/Source toggle for .void files (#606) — contributed by @simranxdhindsa
- Block diffs work in Commit History, branch comparison, uncommitted changes and Open File at This Commit (#606) — contributed by @simranxdhindsa
- File header changes, like version, are listed in a separate note instead of mixed into the blocks (#606) — contributed by @simranxdhindsa
- Merge conflicts in .void files show as block cards with Keep Current, Keep Incoming and Keep Both (#607) — contributed by @simranxdhindsa
- The conflict view checks the result is a valid .void file before saving, with All Current/All Incoming/Both bulk actions (#607) — contributed by @simranxdhindsa
- Images and other binary files show as previews or file cards in diffs, file previews and conflicts (#614) — contributed by @simranxdhindsa
- Source Control shows status letters (M, U, A, D, R) next to changed files (#607) — contributed by @simranxdhindsa
- Commit History is resizable and has a toolbar for Go to current commit, Fetch, Pull, Push and Refresh (#607) — contributed by @simranxdhindsa
- The CLI install command in Settings has a Copy button (#613) — contributed by @simranxdhindsa
- The HTTP QUERY method has its own color (#599) — contributed by @muhammadlutf1
- Newly released community plugins are announced in the new plugins toast
Improved
- Commit History animates open and closed, and expanding a commit no longer makes the panel jump (#607) — contributed by @simranxdhindsa
- Upgraded to Electron 44 and resolved Dependabot alerts
- Smaller app package by dropping unused terminal prebuilds
Fixed
- Source Control no longer freezes on repos with many untracked files (#607) — contributed by @simranxdhindsa
- Large binary files no longer freeze the window in diffs (#614) — contributed by @simranxdhindsa
- No loader flash when switching files in Commit History (#618) — contributed by @simranxdhindsa
- Windows no longer open blank after using File > Open Recent, and already-broken windows are repaired on start (#611) — contributed by @simranxdhindsa
- Installing the voiden terminal command works on Apple chip Macs (#613) — contributed by @simranxdhindsa
- Cancelling the terminal command password prompt no longer brings it back on every startup
- Methods typed in lowercase, like patch, are sent in uppercase instead of failing with 400 Bad Request
- Connecting to a server-streaming gRPC method no longer fails with "object expected"
- The file tree no longer jumps or collapses open folders when a request is sent
- A file with a single request no longer shows a default "Request 1" name in the response panel
What's Changed
- Main to beta merge by @phurpa-tsering in https
- v2.3.4Voiden v2.3.42026-10-22 · 2026-10-22 12:05 UTC
查看更新说明
Environment Visibility & Saving Fix
Patch release: child environments can be shown in the env picker while their parent is hidden, the env selector search matches display names, and an open env YAML tab now stays in sync with the Environment Editor.
Added
- A child environment can be shown in the env picker while its parent is hidden
Improved
- Hiding or unhiding a parent environment resets its children, so hiding it again hides all of them
Fixed
- Environment changes are no longer overwritten when the env YAML file is open in another tab
- Searching the env selector finds environments by their display name
Full Changelog: https://github.com/VoidenHQ/voiden/compare/v2.3.3...v2.3.4
- v2.3.3Voiden v2.3.32026-10-21 · 2026-10-21 12:32 UTC
查看更新说明
Stable: Commit History, Folder Environments & Startup Options
Stable release rolling up v2.3.3-beta.1 plus newer changes: a reworked Commit History panel, folder-level .env inheritance, optional request fields, an On startup window preference, and fixes across Git, environments, gRPC, and saving.
Added
- Hovering a commit in Commit History shows its author, co-authors, full message, changed files, and a link to the commit on GitHub, GitLab, or Bitbucket (#602) — contributed by @simranxdhindsa
- Clicking a commit expands its changed files inline, with keyboard navigation and Load More Commits (#603) — contributed by @simranxdhindsa
- The commit hover card shows the author's profile photo (#604) — contributed by @simranxdhindsa
- Settings > General > On startup chooses whether Voiden reopens all windows, the last window, or a new window (#581)
- Requests inherit .env files from their own folder and its parent folders (#576) — contributed by @vianmangal
- Request table rows have a Required checkbox, and optional rows with unresolved variables are left out of the request (#552) — contributed by @moonlander101
- Tab accepts the highlighted suggestion in the slash menu, variable and file suggestions, and code completions (#566)
- The plugin registry is re-checked every hour, so new plugins and updates show up without a restart
- Update All in the Plugin Manager also updates community plugins
Improved
- Commit History uses compact single-line rows with theme-colored branch lanes (#603) — contributed by @simranxdhindsa
- Git error messages name the cause and the next step, and Stage All / Unstage All report failures (#596)
- Cloned repositories include full history, and existing shallow clones are completed on the next fetch (#596)
- The menu's Close Window item is renamed Close and Forget Window
- The plugin registry loads from voiden.md and falls back to GitHub when it is unreachable
- The daily plugin registry request reports anonymous activity and a hashed install code so active installs can be counted
Fixed
- Cloning a repository with an access token or SSH key no longer fails (#596)
- Staged renames stay visible in Staged Changes (#596)
- .voiden folders in nested sub-projects are ignored by Git
- Discarding .gitignore changes is no longer undone immediately
- Hiding an environment also hides its child environments
- The rename field is focused after Duplicate, Add child, or Rename in the environment editor
- Folder environments refresh when a .env file is added or removed
- A folder that only contains a .env file appears in the environment selector
- gRPC services in dotted proto packages resolve correctly
- The Required checkbox is locked on disabled table rows
- The initial commit shows its files in the commit graph (#578) — contributed by @muhammadlutf1
- Dropdown options are readable on dark themes (#575) — contributed by @Prithvi-gif
- Selecting text in a code editor no longer scrolls the view on its own (#559) — contributed by @igorzelaya-io
- Response and terminal panel resize handles follow the cursor without sticking or jumping
- The file tree's reveal item reads "Reveal in File Explorer" on Windows, with the correct shortcut shown on Windows and Linux
- Save All & Quit saves untitled files and waits for every window to finish saving
- An untitled file saved from a background window is offered its own project folder
- Closing a window asks about unsaved changes, so the close button and taskbar Quit no longer discard edits on Windows and Linux
What's Changed
- Main to beta merge by @phurpa-tsering in https://github.com/VoidenHQ/voiden/pull/579
- dev : fast xml package by @phurpa-
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。

Why Voiden
Voiden is an offline API client that helps developers, QA and technical writers build, test, collaborate and document APIs in one place. With a programmable interface (/slash commands) and an agent-friendly CLI, Voiden adapts to how engineers already work. Voiden is built with Electron, Typescript and Javascript, and it doesnt require an account to use it.
No telemetry, no VC funding, and no cloud lock-in.
✨ Features:
Voiden supports all major API protocols:
- Supports REST, GraphQL, Grpc, Web-Sockets. All these are plugins that you can install or uninstall according to your needs. Community plugins available: https://voiden.md/plugins
- Import collections from Postman, Insomnia and Swagger/ OpenAPI.
Single Source of truth for all API work in the same file:
- Keep API requests, tests, notes and docs together in the same executable
.voidfiles. Keep everything in one format and one workflow. - Requests can be composed by API building blocks (endpoint, auth, params, body). Decompose requests into blocks. Reuse the same blocks across files, like functions.
- Work in Markdown and structured blocks instead of opaque collections locked inside an app.
- Test and document APIs without leaving the editor.
Workflows:
- Scripting: Execute JavaScript, Python, or Shell scripts before sending requests and after receiving responses.
- Stitch runner: Batch-execute multiple .void files sequentially. Supports glob patterns, stop-on-failure, variable isolation, configurable delays, and environment selection.
Collaboration:
- Collaborate with Git branches and pull requests instead of proprietary team workspaces.
- Stay local-first with no signup and no required cloud sync.
AI Friendly:
- No proprietary workspace. No binary exports. Pure text all the way down, diffable like code, greppable, AI-editable, and merge-friendly.
- Supports Voiden skills for Claude and Codex agents.
- MCP support — connect Claude Code or Codex directly to a project so they can run your
.voidrequests themselves, or serve your own requests as tools other agents can call. See the MCP docs.
Voiden Runner: A headless CLI for running those .void files outside the desktop app, directly in the terminal.
- runs on Node.js 18+
- works in terminal, CI/CD, Docker, and cron jobs
- supports REST, WebSocket, gRPC, and GraphQL
- supports request chaining through runtime variables
- works with core Voiden plugins like scripting, assertions, faker, advanced auth, + more.
Install
Current version: 2.3.3 (stable)
Download installers for macOS, Windows, and Linux from voiden.md/download.
Direct downloads are available for Apple Silicon and Intel macOS, Windows .exe, and Linux .deb, .rpm, and .AppImage builds.
Windows note (starting v2.1.1): the Windows installer is now signed via Azure Trusted Signing instead of our previous certificate provider. Because of this change, you may see a "Windows protected your PC" SmartScreen dialog during install — the installer is signed and verified, this is expected while the app builds up download reputation with Microsoft. Click "More info" → "Run anyway" to proceed.
Package managers
| Platform | Stable | Early access |
|---|---|---|
| macOS | Homebrew, Nix | Homebrew (voiden@beta), Nix |
| Windows | winget, Chocolatey | winget (Voiden.Voiden-Beta) |
| Linux | Flatpak, Homebrew, apt, snap, Nix | Beta apt and snap channels, Nix |
macOS
Homebrew
brew install voiden
# beta
brew install voiden@beta
Windows
winget
winget install Voiden
Chocolatey
choco install voiden
# beta (winget)
winget install Voiden.Voiden-Beta
Linux
Flatpak (any distro)
flatpak remote-add --if-not-exists flatpark https://dl.flatpark.org/flatpark.flatpakrepo
flatpak install flatpark md.voiden.Voiden
Homebrew on Linux
brew tap voidenhq/voiden
brew trust voidenhq/voiden
brew install voidenhq/voiden/voiden
APT (Ubuntu / Debian)
curl -fsSL https://voiden.md/apt/stable/voiden.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/voiden.gpg
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/voiden.gpg] https://voiden.md/apt/stable stable main" | sudo tee /etc/apt/sources.list.d/voiden.list
sudo apt update && sudo apt install voiden
# beta
curl -fsSL https://voiden.md/apt/beta/voiden.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/voiden-beta.gpg
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/voiden-beta.gpg] https://voiden.md/apt/beta beta main" | sudo tee /etc/apt/sources.list.d/voiden-beta.list
sudo apt update && sudo apt install voiden
Snap
sudo snap install voiden
# beta
sudo snap install voiden --channel=beta
Nix (Linux / macOS)
One-time setup — trust the voiden Cachix binary cache so Nix fetches a prebuilt
result instead of compiling Electron and native modules from source (the default
multi-user Nix install won't honor a flake's own substituter config without this):
nix run nixpkgs#cachix -- use voiden
Then run Voiden directly using Nix Flakes:
nix run github:VoidenHQ/voiden
If you skip the cachix use step, nix run still works — Nix just falls back to
building from source, which is slower.
Looking for newer builds? Check the early access section on voiden.md/download.
Get started with Voiden
- Install Voiden and open it. No signup or login is required.
- Create a
.voidfile in any folder and add your request, docs, and reusable blocks. - Run the request with
Cmd+EnterorCtrl+Enter, then commit the file to Git.
For a guided first run, see the Voiden quick start.
Coming from Postman and other tools?
If you already use Postman, you can bring your existing collections with you:
- In Postman, export your collection as JSON (v2.1 is recommended).
- Drag the exported JSON file into the Voiden file list on the left panel.
- Open the imported file and click Generate Voiden Files to create a folder of native
.voidfiles — one per request, with headers, auth, query params, path variables, bodies, and response examples preserved.
Full walkthrough: Postman Imports.
Using Swagger or Insomnia?
OpenAPI Imports. Insomnia Imports
What you can do
- Build REST and HTTP requests with headers, query params, JSON/XML/YAML/form bodies, file uploads, and cURL import/export.
- Work with GraphQL using schema import, a visual query builder, variables, and subscriptions.
- Use WebSocket and gRPC workflows in the same workspace.
- Add pre-request and post-response scripts in JavaScript, Python, or shell.
- Run assertions and stitch multiple
.voidfiles into batch runs with aggregated results. - Import OpenAPI specs and Postman collections into native Voiden files.
- Keep Git, terminal, docs, and API testing close together inside the desktop app.
What a .void file looks like
Voiden files combine frontmatter, Markdown, and structured void request blocks so the request and the documentation live together.
Document frontmatter:
---
version: 1.4.6
generatedBy: Voiden app
generatedAt: 2026-04-16T10:24:00.000Z
---
Markdown body:
# Hello, World
A simple GET request you can run with Cmd/Ctrl+Enter.
A void request block:
---
type: request
content:
- type: method
content: GET
- type: url
content: https://echo.apyhub.com
---
Voiden generates the document metadata and block IDs for you inside the app.
Documentation
User docs
Contributor docs
| Topic | Description |
|---|---|
| Fresh install | Repository setup and local development |
| Architecture overview | Core app, extension system, and request flow |
| Extension guide | Build your own extension |
| Themes | Create custom themes |
| Troubleshooting | Common issues and fixes |
See the documentation index for the full list.
Build from Source
For platform-specific prerequisites and troubleshooting, start with Fresh Install.
git clone https://github.com/VoidenHQ/voiden.git
cd voiden
corepack enable
yarn set version 4.3.1
yarn install
yarn workspace @voiden/core-extensions build
cd apps/electron && yarn start
Build with Nix
If you have Nix installed, you can manage the development environment or build Voiden natively:
# 1. Enter the reproducible development shell (sets up Node, Corepack/Yarn, Git)
nix develop
# 2. Build the Nix package (compiles source and creates sandboxed wrapper)
nix build
# 3. Run the compiled executable binary
./result/bin/voiden
If you hit Windows build issues, see Build Errors.
Project Structure
voiden/
├── apps/
│ ├── electron/ # Electron main process
│ └── ui/ # React renderer
├── core-extensions/ # Built-in extensions
└── docs/ # Documentation
Why Electron?
Voiden is built on Electron. We are building something closer to an IDE for APIs than a lightweight request sender, so we wanted a mature, cross-platform foundation that ships consistently on macOS, Windows, and Linux, gives us deep system access for things like Git and the terminal, and lets us keep a rich, custom editor experience.
We also know Electron gets a bad reputation, often inherited from other API tools. Our take is that footprint matters, but stability, reliability, and cross-platform predictability matter more when users feel them every day. We would rather be transparent about resource usage and keep optimizing it than chase a lighter stack that breaks in subtle ways.
Read some more of our thoughts here: Why Voiden is Built on Electron (and not Tauri)?.
Community
- Report bugs and request features in GitHub Issues.
- Join the Voiden Discord for updates and office hours.
- Track upcoming work in GitHub Milestones.
Contributing
We welcome contributions. Start with:
Useful Resources
- Community & Feedback
- Documentation
- Voiden vs Postman
- Voiden Plugins
- Blog and articles
- Privacy Policy
License
This project is licensed under the Apache License 2.0.