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

Kulala

mistweaverco

|
5 installs
| (0) | Free
REST client for VS Code powered by kulala-core (.http files, environments, scripts)
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Kulala Logo

kulala.vscode

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 Core 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, Headers, timings, and script console output
  • 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 on first run (downloads kulala-core from GitHub releases unless kulala.corePath is set)

Install

Marketplace

Install Kulala (mistweaverco.kulala) from the VS Code Marketplace.

From source

cd kulala.vscode
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 mistweaverco/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/mistweaverco/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.

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
© 2026 Microsoft