Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Kulala for CodeNew to Visual Studio Code? Get it now.
Kulala for Code

Kulala for Code

The Don't Be Evil Company

|
1 install
| (0) | Free
A fully-featured HTTP/GraphQL/gRPC/Websocket-client interface for (Visual Studio) Code, that supports the Jetbrains .http spec (with full scripting support).
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Kulala Logo

kulala-code

Made with love Discord Development status Our manifesto AI Policty Kulala on the Visual Code Marketplace Kulala on the Open VSX Registry

A fully-featured ⚡️ HTTP/GraphQL/gRPC/Websocket-client 🐼 interface 🖥️ for (Visual Studio) Code ❤️, that supports the Jetbrains .http spec (with full scripting support).

Kulala is swahili for "rest" or "relax."

Other tools 🔧 from the Kulala 🐼 family 🌈

Kulala CLI • Kulala Formatter (and converter) • Kulala Desktop • Kulala for Neovim • Kulala Github Action


Features

  • Send request at cursor (Ctrl+Alt+R / Cmd+Alt+R) or via CodeLens / editor title
  • Send all requests in the file (Ctrl+Alt+A / Cmd+Alt+A)
  • Response panel with Body (read-only Monaco, language-aware), Headers, timings, tests, and script console
  • OpenAPI explorer for # @kulala-openapi-explorer blocks (foldable tree, try-it-out, load values from files, copy as HTTP)
  • Environments from kulala-core (http-client.env.json, kuba, etc.)
  • Completion & hover via kulala-core LSP helpers
  • Diagnostics in .http files
  • Syntax highlighting via the kulala_http tree-sitter grammar
  • Copy as cURL / paste from cURL
  • Inspect request (resolved request preview)
  • OAuth / custom prompts via kulala-core continue flow

Requirements

  • VS Code 1.105 or newer
  • Network access the first time kulala-core is needed (downloads kulala-core from core.kulala.app unless kulala.corePath is set; prompts for a license token when KULALA_CORE_LICENSE_TOKEN is unset)

Install

Marketplace

Install Kulala (dont-be-evil-company.kulala-code) from the VS Code Marketplace.

From source

cd kulala-code
pnpm install
pnpm run build

Press F5 in VS Code to launch an Extension Development Host.

LSP (kulala-core)

Kulala for Visual Studio Code uses kulala-core for editor intelligence (not a separate language-server binary):

Feature .http / .rest *.http.js / *.http.ts / *.http.lua Inside {% %} scripts
Completion ✓ ✓ (script API) ✓ (script API + variables)
Hover ✓ (resolved request / GraphQL) ✓ (script API) ✓ (script API)
Diagnostics ✓ (parse errors) - -
Document symbols ✓ (request names) - -

External script files must be named something.http.ts (etc.) when kulala.enforceExternalScriptNamingConvention is true (default), matching Neovim.

Configuration

Setting Default Description
kulala.corePath (empty) Path to kulala-core binary; skips auto-download when set
kulala.coreVersion [current version] Release version to download
kulala.dataDir (platform default) KULALA_CORE_DATA_DIR for cookies, OAuth, globals
kulala.defaultEnv default Default environment name
kulala.timeout 60000 Subprocess timeout (ms)
kulala.responseView beside Response panel: beside, below, or active
kulala.enableLsp true kulala-core completion, hover, diagnostics, symbols
kulala.enableDiagnostics true Parse diagnostics in .http / .rest
kulala.enableCompletion true Completion in HTTP files and {% %} scripts
kulala.enforceExternalScriptNamingConvention true LSP on *.http.js / *.http.ts / *.http.lua only
kulala.syntaxHighlighting true Tree-sitter semantic highlighting for .http / .rest

Syntax highlighting

Kulala bundles the kulala_http grammar from dont-be-evil-company/tree-sitter-kulala-http (syntaxes/kulala_http.wasm + query files). Language injections (from upstream queries/kulala_http/injections.scm) re-highlight embedded content using additional grammars under syntaxes/grammars/ (json, javascript, typescript, lua, graphql, xml).

Inline {% %} scripts use short language tags on the opening line (same as kulala-core): lang=lua, lang=js, or lang=ts for TypeScript.

Omit the tag for JavaScript. Use lang=ts (not lang=typescript) so kulala-core runs the TypeScript transpiler.

It uses VS Code semantic highlighting (enable with a theme that supports it, e.g., Dark+).

Requires editor.semanticHighlighting.enabled (on by default for http / rest via this extension).

pnpm run build runs pnpm install, fetches grammars with git / curl, and builds WASM with the tree-sitter CLI:

pnpm run build:syntax

Optional environment variables:

Variable Default Purpose
KULALA_HTTP_GRAMMAR_REPO https://github.com/dont-be-evil-company/tree-sitter-kulala-http.git Host grammar clone URL
KULALA_HTTP_GRAMMAR_REF main Host grammar branch or tag
KULALA_HTTP_GRAMMAR_DIR .cache/tree-sitter-kulala-http Host grammar cache
KULALA_GRAPHQL_GRAMMAR_REPO https://github.com/joowani/tree-sitter-graphql.git GraphQL grammar (npm package does not ship wasm)
KULALA_LUA_GRAMMAR_REPO https://github.com/tree-sitter-grammars/tree-sitter-lua.git Lua wasm + highlights (must match)
KULALA_XML_GRAMMAR_REPO https://github.com/tree-sitter-grammars/tree-sitter-xml.git XML grammar (build in xml/ subdir)

Example

Create api.http:

### Get user
GET https://httpbin.org/get
Accept: application/json

Use Kulala: Send Request or click the CodeLens above the request.

OpenAPI explorer

Fetch a spec with the # @kulala-openapi-explorer directive, then explore and run operations from the OpenAPI panel:

### Petstore
# @kulala-openapi-explorer
GET https://petstore3.swagger.io/api/v3/openapi.json
  • Running the block opens the OpenAPI explorer (not the normal response panel).
  • Use Kulala: Open OpenAPI Explorer to reopen the last tree or load from the cursor.
  • Use From file on a Try it out field to load that value from a file.
  • Use Copy as HTTP on an operation (or Kulala: Copy OpenAPI Operation as HTTP) to copy a standalone .http request to the clipboard.
  • Use Kulala: Clear OpenAPI Schema Cache to drop cached specs.
  • Operation runs open the standard response panel (Monaco body).

How it works

The extension talks to kulala-core over a JSON stdin protocol (action: run, parse, lsp_completion, ...)

On first use it installs the matching release binary into extension global storage, or you can point kulala.corePath at your own build.

License

MIT

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft