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.

v2.4.0发布于 2026-11-04 11:45 UTC1,790star +4 / 7 天89fork同步于 2026-11-10 17:48 UTC

怎么上手

由 README 提炼,执行前请确认
brew install voiden
硬件要求按 README 说明

README 未说明硬件要求;桌面端提供 macOS(Apple Silicon 与 Intel)、Windows、Linux 安装包,Runner CLI 需 Node.js 18+

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

离线 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 文件

容易踩的坑

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

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.4.0
  1. 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
  2. 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

    New Contributors

    Full Changelog: https://github.com/VoidenHQ/voiden/compare/v2.4.0-beta.1...v2.4.0-beta.2

  3. 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
  4. 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

  5. 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

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Voiden workspace showing requests, docs, and response panels

    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.void files. 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 .void requests 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

    PlatformStableEarly access
    macOSHomebrew, NixHomebrew (voiden@beta), Nix
    Windowswinget, Chocolateywinget (Voiden.Voiden-Beta)
    LinuxFlatpak, Homebrew, apt, snap, NixBeta 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

    1. Install Voiden and open it. No signup or login is required.
    2. Create a .void file in any folder and add your request, docs, and reusable blocks.
    3. Run the request with Cmd+Enter or Ctrl+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:

    1. In Postman, export your collection as JSON (v2.1 is recommended).
    2. Drag the exported JSON file into the Voiden file list on the left panel.
    3. Open the imported file and click Generate Voiden Files to create a folder of native .void files — 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 .void files 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

    TopicDescription
    Fresh installRepository setup and local development
    Architecture overviewCore app, extension system, and request flow
    Extension guideBuild your own extension
    ThemesCreate custom themes
    TroubleshootingCommon 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

    Contributing

    We welcome contributions. Start with:

    Useful Resources

    License

    This project is licensed under the Apache License 2.0.