Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Apijack

FreeNot checked

Generate full-featured CLIs with workflow automation from any OpenAPI spec

GitHubEmbed

About

Generate full-featured CLIs with workflow automation from any OpenAPI spec

README

Jack into any OpenAPI spec and rip a full-featured CLI with AI-agentic workflow automation.

npm tests e2e buy me a coffee

What is apijack?

apijack turns any API into a CLI.

GET /api/pets
GET /api/pets/{id}
GET /api/owners
GET /api/owners/{id}

becomes a command tree that mirrors your API:

apijack
├── pets
│   ├── list
│   └── get <id>
└── owners
    ├── list
    └── get <id>
$ apijack pets get 25

Getting Started

bun install -g @apijack/core
apijack setup              # Configure URL + credentials (auth auto-detected)
apijack generate            # Pull OpenAPI spec, generate types/client/commands
apijack --help              # See all generated commands

New to apijack? Follow the Quickstart guide with a working example API.

Claude Code Plugin

Install as a Claude Code plugin to let Claude interact with your APIs directly:

apijack plugin install

Then in Claude Code, run /reload-plugins. The plugin exposes MCP tools and skills for setup, code generation, command execution, and routine authoring.

Example prompt:

"Use /setup-api to connect apijack to my todo list API at http://localhost:8080, then use /write-routine to automate an e2e test: create 10 todos and then delete them all."

For other MCP-compatible editors (Cursor, Windsurf, etc.), see MCP Server Integration.

As a Framework

Build dedicated CLI products with apijack as a dependency:

bun add @apijack/core
import { createCli, BasicAuthStrategy } from "@apijack/core";

const cli = createCli({
  name: "mycli",
  description: "My API CLI",
  version: "1.0.0",
  specPath: "/v3/api-docs",
  auth: new BasicAuthStrategy(),
});

await cli.run();

See Building a CLI for the full configuration reference.

Features

  • OpenAPI codegen -- types, client, and Commander commands from any spec (details)
  • Claude Code plugin -- one-command setup, MCP server, AI-integrated skills
  • Pluggable auth strategies -- Basic, Bearer, API Key, Session/CSRF, or build your own (details)
  • Secure credential handling -- dev URLs stored locally, production APIs require env vars (details)
  • Multi-environment config -- switch between dev/staging/prod with config switch (details)
  • YAML routine engine -- variables, conditions, forEach, assertions, sub-routines (details)
  • -o routine-step export -- run any command with -o routine-step to emit YAML for workflows (details)
  • Project mode -- project-local config, routines, and extensions (details)
  • OpenAPI 3.0 + 3.1 -- comprehensive spec support (compatibility matrix)

Plugins

apijack supports pre-built plugins as standalone npm packages for common utilities. Install via cli.use(plugin()) and configure per-routine via a top-level plugins: block in routine YAML. See CLAUDE.md for the full contract and <cli> plugins list to inspect registered plugins.

Documentation

Full documentation is available on the wiki:

Requirements

License

MIT

from github.com/normalled/apijack

Installing Apijack

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/normalled/apijack

FAQ

Is Apijack MCP free?

Yes, Apijack MCP is free — one-click install via Unyly at no cost.

Does Apijack need an API key?

No, Apijack runs without API keys or environment variables.

Is Apijack hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Apijack in Claude Desktop, Claude Code or Cursor?

Open Apijack on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Apijack with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs