Help Center
How to use Bandura.
37 articles, from your first flow to running suites in CI. Search below, or take the path through the basics.
No article matches that. Try a shorter word, or browse all 37 articles.
New here? Start at the top.
- What is Bandura? 3 min Bandura is a local-first desktop IDE for API testing. Flows are plain .aether files edited as a graph or as YAML. Here is the idea and a tour of the window.
- Open a workspace 4 min Point Bandura at a folder, create files and projects, find your way around the File Explorer, and search or replace across every file in it.
- Your first flow 3 min Build your first API test in Bandura in about five minutes: a request node, an assertion on the response, and a run you can read. No keys, no setup.
Already have a Postman collection? Skip ahead to Migrate from Postman in 5 minutes.
Getting started
What Bandura is, how to open a folder as a workspace, and building a first flow end to end.
- What is Bandura? 3 min Bandura is a local-first desktop IDE for API testing. Flows are plain .aether files edited as a graph or as YAML. Here is the idea and a tour of the window.
- Open a workspace 4 min Point Bandura at a folder, create files and projects, find your way around the File Explorer, and search or replace across every file in it.
- Your first flow 3 min Build your first API test in Bandura in about five minutes: a request node, an assertion on the response, and a run you can read. No keys, no setup.
The editor
The graph and code tabs, the node inspector, the command palette, the terminal, and every setting, including settings.json and per-token theme overrides.
- Graph & code views 10 min Edit one .aether flow as a visual graph, as YAML, or both at once. How the Graph, Code and Split tabs stay in sync, and which one to reach for.
- The node inspector 9 min The flow editor's right-hand panel: a node's YAML, the variables it reads, request params, headers, its last response, and an AI chat scoped to it.
- Command palette & quick open 3 min Reach any command, view, file, environment or collection from the keyboard with ⌘⇧P and ⌘P, covering every File, View, Project and Help command.
- The built-in terminal 3 min A real terminal in Bandura's bottom panel: your shell, full-screen programs, Ctrl+C, and an AI coding agent running beside your flows.
- Settings & appearance 6 min The Bandura Settings page: category tabs, search across every preference, a draft you save or discard, plus AI provider, API key, licence and theme controls.
- settings.json 12 min Every Bandura preference in one hand-editable JSON file: themes, fonts, per-token colour overrides, and AI provider settings, with comments allowed.
- Customize the theme 5 min Repaint Bandura one colour token at a time with ui.themeOverrides: the full token list, a worked example, and the rules that keep a palette readable.
Flows & nodes
What's inside an .aether file: all ten node types, variables, dynamic values, authentication, file uploads, client certificates and proxies, the Flow Map, and sharing flows through Git.
- The .aether file 5 min The .aether format explained: one file is one flow, written as YAML with embedded JavaScript, with routing on each node instead of a separate edges list.
- Node reference 16 min All ten node types (request, grpc, websocket, assertion, condition, loop, parallel, script, ai-action, subflow) with fields and working examples.
- request: call an API
- GraphQL
- Server-Sent Events
- grpc: call a gRPC service
- websocket: open a socket, send, collect the reply
- assertion: make the run fail loudly
- Asserting on response time
- condition: branch
- loop: repeat over an array
- parallel: fan out, then join
- script: arbitrary JavaScript
- ai-action: ask a model mid-flow
- subflow: run another flow inline
- log(): print from any expression
- Expression scope: what a JavaScript field can read
- retry & poll-until: re-run a step until it works
- hooks: run logic around every call
- What each phase can read
- How often each phase runs under retry
- Code in a separate file
- Variables & environments 7 min Where values come from, how ${{ }} interpolation works, and how to switch between staging and production without editing a flow.
- Dynamic values 5 min Generate a fresh UUID, timestamp, email or random number, or sign and encode values inline: the $-prefixed helpers in every ${{ }} template.
- Authentication & cookies 6 min The auth block in a .aether flow: basic, bearer, API key, OAuth2 client-credentials and password grants, AWS SigV4, plus the automatic cookie jar.
- Client certificates & proxies 5 min Call an internal API from a flow: mutual TLS with a client certificate, a trusted private CA, and an HTTP or HTTPS proxy with its own credentials.
- File uploads & binary bodies 5 min Upload a file with multipart/form-data or send raw bytes from a request node, including inline base64 and the content types Bandura sets for you.
- The Flow Map: see the whole workspace 2 min The Flow Map shows every .aether file in the workspace as a card, the subflow calls between them, each flow's last result, and a run button per card.
- Share flows with Git 4 min Flows are plain text, so Git is the collaboration layer. What to commit, what to gitignore, how secrets stay out, and how a teammate gets from clone to run.
Running & debugging
Running a flow, reading the graph as it executes, tracing a failure to the exact request, and browsing the local run history.
- Run a flow & debug failures 8 min Run an .aether flow with Cmd+Enter or F5, watch the graph light up node by node, and trace a failure to the exact request, response and assertion that broke.
- Execution history 2 min Every Bandura flow run is recorded in a local database. Browse past runs, open a run's per-node detail, compare a green run with a red one, and clear the log.
Importing
Turning a Postman collection, Insomnia export, OpenAPI spec, Bruno request, HAR capture, or curl command into .aether flows.
- Migrate from Postman in 5 minutes 5 min Export your Postman collection, drop it into Bandura, fill in your secrets, and run. Your requests become Git-native .aether flows with no rewrite.
- Import Postman, Insomnia, OpenAPI & curl 7 min Turn a Postman collection, an Insomnia export, an OpenAPI/Swagger spec, a Bruno request, or a curl command into ready-to-run .aether flows.
AI features
Connecting a provider (including a local model that needs no key), chat and ai-action nodes, flow generation, spec-drift healing, and provider errors.
- Connect an AI provider 5 min Point Bandura's AI at Anthropic, OpenAI, Groq, OpenRouter, Together, or a local Ollama / LM Studio, using your key, your endpoint, your data.
- Run a local model with Ollama 3 min Use a self-hosted LLM for AI API testing: point Bandura at Ollama or LM Studio over the OpenAI-compatible API. No key, no payload leaves your machine.
- AI chat & ai-action nodes 6 min The agentic chat sidebar: fourteen tools, an approval gate on writes, saved conversations, plus a model inside the flow with an ai-action node.
- Generate flows with AI 2 min Describe an API scenario in plain language and Bandura writes a complete, runnable .aether flow into your workspace, using your own AI provider and key.
- Self-healing flows against an OpenAPI spec 2 min Detect where your flow has drifted from the API's spec (moved paths, changed methods, new required params) and apply the fixes in one click.
- AI provider troubleshooting 6 min Fix a misconfigured AI provider in Bandura (wrong base URL, missing key, a model that can't call tools) using the exact message that names each cause.
CLI, CI & agents
Running flows without the app: the bandura CLI, pipeline recipes for CI, and the MCP server that lets coding agents run them.
- The bandura CLI 15 min Run flows headlessly in a terminal or CI, with reporters, exit codes, variable injection, plus validate, import, export and a local mock server.
- Install
- bandura run
- Reports are redacted by default
- Watch mode
- Repeat runs and latency thresholds
- Failing the build on a slow run
- Exit codes
- bandura validate
- bandura lint
- bandura info
- bandura list
- bandura init
- bandura import
- bandura export openapi
- bandura docs generate
- bandura mock
- bandura mcp
- A CI recipe
- MCP server: let AI agents run your flows 6 min Expose your flows to Claude Code, Cursor, and other MCP clients: list, read, run, replay, heal, import, create, and edit, straight from the agent.
- Run flows in CI 7 min Pipeline recipes for GitHub Actions, GitLab CI, and any runner: secrets, environments, JUnit reports, spec drift gates, headless ai-action nodes.
- Exit codes are the contract
- GitHub Actions
- GitLab CI
- Anything else
- Secrets and environments
- A missing secret stops the run, before it runs
- Making it fast, and making it stop
- Gates worth adding before the tests
- Gating on latency, not just correctness
- Publishing docs from the same flows
- AI nodes in a pipeline
- Testing against a mock instead of a live API
- Related
Reference
Keyboard shortcuts, troubleshooting by symptom, the measured performance numbers, licensing, and what changed in the current release.
- Keyboard shortcuts 5 min Every Bandura keyboard shortcut on one page, with VS Code-style bindings for the command palette, editor, run and debug, panels, and the graph canvas.
- Troubleshooting 8 min The errors you're most likely to meet in Bandura (parse banners, failing requests, unset variables, AI key problems) and the fastest way out of each.
- A red banner says the file can’t be parsed
- A node has a ⚠ badge / Run says “Run anyway”
- A request node fails and I don’t know why
- It works when I run the whole flow, but not from the node I’m on
- The “Run failed” notification vanished before I read it
- Tests that passed for months suddenly fail
- AI features say a key is missing
- My settings.json edits aren’t doing anything
- An Insomnia export is refused, or imports as nonsense
- Bandura says a new version is available
- A banner says the file changed on disk
- A command in the terminal won’t stop
- Where is my data, exactly?
- Still stuck?
- Performance: measured, not promised 4 min Bandura's cold-start time, idle memory and render isolation, with real numbers from the automated test suite and the methodology behind each.
- Licence & activation 6 min Who needs a Bandura licence, what a seat covers, how to enter a key, and how activation is verified offline against a compiled-in public key.
- Do you need one?
- What a seat buys
- Activate a key
- How verification works
- What’s in the key
- After 30 days without a licence
- After your update window ends
- Troubleshooting
- ”This key isn’t valid. Check for a missing character…”
- ”That doesn’t look like a Bandura licence key…”
- ”This licence covers a different major version”
- Moving to a new machine
- I’ve lost my key
- Related
- What's new 7 min What changed in the latest Bandura release: navigating a project, reading what a reference points at, and seeing what git thinks you changed.
Every release and what changed in it: the changelog (RSS). The long-form version of the current release is What's new. What leaves your machine, and when: Security.