Help Center
Find your next step.
Start with a workflow, then learn how to connect apps, inspect runs, and share your work. Search 39 guides or build your first AI workflow.
No article matches that. Try a shorter word, or browse all 39 articles.
New here? Start at the top.
- What is Bandura? 4 min Build AI workflows with APIs, scripts, and result checks. Edit one YAML file visually or as code, run locally, and inspect the outcome.
- 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.
- Build and evaluate an AI workflow 5 min Create a local workflow, add AI steps, evaluate labelled examples, inspect results, and share readable YAML with your team.
- 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? 4 min Build AI workflows with APIs, scripts, and result checks. Edit one YAML file visually or as code, run locally, and inspect the outcome.
- 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.
- Build and evaluate an AI workflow 5 min Create a local workflow, add AI steps, evaluate labelled examples, inspect results, and share readable YAML with your team.
- 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 Configure Bandura: appearance, editor, AI provider, API keys and optional support. Search preferences, preview changes, then save or discard.
- 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 18 min The twelve development-build node types, including typed AI choice and MCP tool calls, with fields and 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
- choice: select one named outcome
- mcp-tool: call a connected app tool
- 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 3 min Browse local flow runs, inspect per-node and per-case outcomes, 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 AI providers and MCP apps, chat and AI 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.
- Connect an app with MCP 5 min Find a remote MCP server, check saved connections, inspect its tools, and add one explicit tool step to a YAML workflow.
- 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.
- Free use & support 1 min Free personal and commercial use, optional Patreon support, and information for users of older builds.
- 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.