Introduction

Napper is a free, open-source, CLI-first API testing tool that integrates natively with VS Code. It is a modern alternative to Postman, Bruno, .http files, and curl.

Napper is built for developers who want:

  • Simple things to be simple — a one-off request is nearly as terse as curl
  • Complex things to be possible — full F# scripting for advanced flows
  • Everything in version control — plain text files, no binary blobs
  • First-class VS Code support — syntax highlighting, Test Explorer, environment switching

How does Napper work?

Every HTTP request is a .nap file:

GET https://api.example.com/health

That's it. One line. Run it from the CLI:

napper run ./health.nap

Or from VS Code with a single click.

What happens when you need more?

Add headers, bodies, assertions, and environment variables:

[meta]
name = Create user

[request]
POST /users

[request.headers]
Content-Type = application/json
Authorization = Bearer 

[request.body]
"""
{
  "name": "Ada Lovelace",
  "email": "ada@example.com"
}
"""

[assert]
status = 201
body.id exists
duration < 500ms

Chain requests into test suites with .naplist files. Add F# scripts for advanced orchestration. Output JUnit XML for your CI pipeline.

Why is the CLI the primary interface?

Napper is not a GUI-first tool with a CLI bolted on. The CLI is the primary interface. The VS Code extension operates on the same files and provides the same features in your editor. This means your API tests work the same way locally and in CI/CD, with no import/export step.

Next steps