Installation

Screenshot: Napper VS Code extension installed and active in the VS Code Activity Bar, showing the Napper panel icon

Napper has two parts: the CLI binary and an editor integration. The CLI is a self-contained native binary (not a .NET DLL) with no runtime dependencies — it ships the language server inside it too. The editor integration shells out to the CLI, so you need both for the full experience. There are native extensions for VS Code and Zed; the VS Code extension also installs in every VS Code-compatible editor — Cursor, Windsurf, Antigravity, and VSCodium — via the Open VSX Registry. Any other LSP-capable editor can connect to the bundled language server.


VS Code Extension

Screenshot: Napper extension listing on the VS Code Marketplace, showing install button, ratings, and feature highlights

Install from the Marketplace

The easiest way to get Napper in VS Code is from the marketplace:

Option 1 — Marketplace UI:

  1. Open VS Code
  2. Click the Extensions icon in the Activity Bar (or press Ctrl+Shift+X / Cmd+Shift+X)
  3. Search for Napper
  4. Click Install on the result published by Nimblesite

Option 2 — Command line:

code --install-extension nimblesite.napper

Option 3 — Quick Open: Press Ctrl+P / Cmd+P and run:

ext install nimblesite.napper

Install a VSIX manually

If you need a specific version or are working in an air-gapped environment, download the .vsix file from GitHub Releases and install it manually.

Via the VS Code UI:

  1. Download napper-<version>.vsix from the Releases page
  2. Open the Extensions panel (Ctrl+Shift+X / Cmd+Shift+X)
  3. Click the ... menu (top-right of the panel)
  4. Select Install from VSIX...
  5. Browse to the downloaded .vsix file and click Install

Via the command line:

code --install-extension napper-0.10.0.vsix

VS Code forks — Cursor, Windsurf, Antigravity, VSCodium

Napper is published to the Open VSX Registry, which is the extension source these editors use by default. Open the Extensions panel in your editor, search for Napper, and click Install — or download the .vsix from GitHub Releases and use Install from VSIX.... Each per-platform .vsix bundles the matching CLI binary, so the extension works out of the box.

Zed

Install the Napper extension from Zed's extension registry (open the command palette and run zed: extensions, then search Napper). The Zed extension launches the bundled language server through the CLI, so install the CLI too.

What the extension provides

Once installed, Napper adds:

  • Syntax highlighting for .nap, .naplist, and .napenv files
  • Napper panel in the Activity Bar with a request and playlist explorer
  • Test Explorer integration — run and inspect results without leaving VS Code
  • Environment switcher in the status bar
  • CodeLens actions — click Run or Copy as curl above any request
  • OpenAPI import — generate test files from any OpenAPI/Swagger spec
  • AI enrichment — optional GitHub Copilot integration for smarter assertions

CLI Binary

Screenshot: Napper CLI running a test suite in a terminal, showing coloured pass/fail output for each assertion

The CLI is a self-contained binary with no runtime dependencies — no .NET, no Node, no Python required. The recommended way to install it is with Homebrew (macOS / Linux) or Scoop (Windows).

Homebrew (macOS / Linux)

brew tap Nimblesite/tap
brew install napper

Update to the latest release at any time with brew upgrade napper.

Scoop (Windows)

scoop bucket add Nimblesite https://github.com/Nimblesite/scoop-bucket
scoop install napper

Update to the latest release at any time with scoop update napper.

Download from GitHub Releases

Download the binary for your platform from GitHub Releases. The current release is v0.10.0.

Platform Binary
macOS (Apple Silicon) napper-osx-arm64
macOS (Intel) napper-osx-x64
Linux (x64) napper-linux-x64
Windows (x64) napper-win-x64.exe

macOS / Linux — make it executable and move to PATH:

# Example for macOS Apple Silicon
chmod +x napper-osx-arm64
mv napper-osx-arm64 /usr/local/bin/napper

Windows — add to PATH:

Move napper-win-x64.exe to a folder on your PATH, or rename it to napper.exe and add its directory to your system PATH via System Properties → Environment Variables.

Install script (macOS / Linux)

The install script auto-detects your platform and verifies the SHA256 checksum:

curl -fsSL https://raw.githubusercontent.com/Nimblesite/napper/main/scripts/install.sh | bash

Install a specific version:

curl -fsSL https://raw.githubusercontent.com/Nimblesite/napper/main/scripts/install.sh | bash -s 0.10.0

Install script (Windows)

irm https://raw.githubusercontent.com/Nimblesite/napper/main/scripts/install.ps1 | iex

Install a specific version:

.\scripts\install.ps1 -Version 0.10.0

Build from source

If you have the .NET SDK and make installed, you can build from source:

git clone https://github.com/Nimblesite/napper.git
cd napper
make install-binaries

This builds a self-contained, trimmed, single-file binary for your platform and installs it to ~/.local/bin/napper.

Verify the installation

napper --version
napper --help

You should see the version number and the list of available commands.


Prerequisites

Scenario Requirement
Running .nap / .naplist files None — the CLI is a self-contained native binary, not a .NET DLL
VS Code extension VS Code 1.99.0 or later
VS Code forks (Cursor, Windsurf, Antigravity, VSCodium) Latest version — installs via Open VSX
Zed extension Zed (latest)
JavaScript script hooks (.js) Node.js 18+
Python script hooks (.py) Python 3.9+
F# script hooks (.fsx) .NET 10 SDK
C# script hooks (.csx) .NET 10 SDK
Building from source .NET 10 SDK + make

You only need a script runtime for the language you actually script in — a JavaScript shop never installs .NET, and a .NET shop never installs Node. No account is required. Napper is entirely open source and free.


First-time setup

Screenshot: VS Code workspace with a .nap file open, CodeLens Run button visible above the request line, and the Napper Explorer panel populated with discovered requests

After installing both components:

1. Verify the CLI is on your PATH

Open a terminal and run:

napper --version

If VS Code cannot find the CLI, set the path explicitly in VS Code settings:

{
  "napper.cliPath": "/usr/local/bin/napper"
}

2. Open a folder with .nap files

The Napper panel in the Activity Bar will automatically discover all .nap and .naplist files in your workspace. If you do not have any yet, create a simple one:

GET https://jsonplaceholder.typicode.com/posts/1

Save it as hello.nap.

3. Run your first request

  • From VS Code: Click the Run CodeLens link above the request line, or click the play button in the Napper Explorer panel.
  • From the CLI: napper run ./hello.nap

4. Set up environments (optional)

Create a .napenv file in your project root with shared variables:

baseUrl = https://api.example.com

Create a .napenv.local file (add to .gitignore) for secrets:

token = your-secret-token
apiKey = your-api-key

Switch environments from the VS Code status bar or with --env on the CLI.


Troubleshooting

VS Code says it cannot find the napper CLI

Make sure the CLI binary is on your system PATH. Test by opening a terminal inside VS Code (Ctrl+`` ) and running napper --version. If it works there but not in the extension, set napper.cliPath explicitly in your VS Code settings.

chmod +x is required on macOS / Linux

After downloading the binary, you must make it executable before running it:

chmod +x napper-osx-arm64

macOS Gatekeeper warning

On macOS, you may see a warning that the binary is from an unidentified developer. Right-click the binary and choose Open, or run:

xattr -dr com.apple.quarantine /usr/local/bin/napper

Script hooks fail with "runtime not found"

Script hooks need the runtime for the language they are written in — and only that one. JavaScript (.js) needs Node.js 18+, Python (.py) needs Python 3.9+, and F# (.fsx) / C# (.csx) need the .NET 10 SDK. Napper invokes each runtime by its command name (node, python3, dotnet fsi, dotnet script) from your system PATH — make sure the right one is installed and on PATH. Plain .nap and .naplist files need no runtime at all. In JavaScript and Python the ctx object is injected automatically — there is nothing to import and no npm install or pip install.


Next steps