curl is stateless. Postman is heavy. Kest remembers everything.
Kest is the unified platform for modern API development, built for those who live in the terminal with AI copilots (Cursor, Windsurf, Cline, Copilot). It combines a high-performance CLI with a collaborative web dashboard.
Kest is organized as a flat, high-visibility monorepo to ensure perfect synchronization between the tool, the brain, and the interface.
- cli/: The core Kest CLI. High-speed, markdown-native, and AI-powered.
- api/: The Platform Backend. Handles team collaboration, data persistence, and AI diagnosis logic.
- web/: The Web Console. A sleek Next.js dashboard for visualizing test flows and team activity.
The fastest way to get started with the Kest toolset:
curl -fsSL https://kest.dev/install.sh | shBuilt via GoReleaser. Supported on macOS, Linux, and Windows.
kest init # Initialize project
kest get /api/users -a "status==200" # Test an endpoint
kest post /api/login -d '{"user":"admin"}' -c "token=data.token" # Capture token
kest run auth.flow.md # Run a Markdown flowUse this flow when you want to push local CLI history back into a Kest project as API Specs.
- Open the target project in the Web Console.
- Go to the project detail page.
- In the
CLI Synccard, clickGenerate CLI Token. - Copy the one-time token or the generated setup command.
Then configure the CLI once inside your local Kest project:
kest sync config \
--platform-url "https://api.kest.dev/v1" \
--platform-token "kest_pat_..." \
--project-id "12"This writes the following fields into .kest/config.yaml:
platform_url: https://api.kest.dev/v1
platform_token: kest_pat_...
platform_project_id: "12"Check the saved configuration:
kest config listPreview what will be uploaded:
kest sync push --dry-runThen run the real upload:
kest sync pushNotes:
platform_tokenis a Kest project token, not an OpenAIsk-...key.- The token is scoped to a single project and is checked against the URL project ID on upload.
- The CLI upload endpoint is
POST /v1/projects/:id/cli/spec-sync.
Traditional API tools were designed for manual entry. Kest was designed for the AI era:
- Markdown-Native (
.flow.md): Write tests that both humans and AI can read natively. - Zero-Copy Chaining: Automatically capture variables from one request and use them in the next.
- AI Diagnosis (
kest why): When a test fails, let the AI diagnose the root cause using your local request history. - Snapshot Testing: Catch regressions instantly without writing boilerplate assertions.
Since this is a Monorepo, you can develop all components simultaneously using Go Workspaces.
git clone https://github.com/kest-labs/kest.git
cd kest
# The workspace is already configured via go.work
# Build the CLI
cd cli && go build -o kest .Apache 2.0 License. See LICENSE for details.
Keep Every Step Tested. 🦅