https://github.com/mistweaverco/kulala-core
The kulala-core will become the backend for all the kulala tools. It parses .http files and exectutes requests. including scripts, without any external requirements.
https://github.com/mistweaverco/kulala-core
http-client-helper http-requests rest-client rest-library
Last synced: about 2 months ago
JSON representation
The kulala-core will become the backend for all the kulala tools. It parses .http files and exectutes requests. including scripts, without any external requirements.
- Host: GitHub
- URL: https://github.com/mistweaverco/kulala-core
- Owner: mistweaverco
- License: mit
- Created: 2025-09-29T09:36:58.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-05-19T13:53:24.000Z (2 months ago)
- Last Synced: 2026-05-19T14:54:40.959Z (about 2 months ago)
- Topics: http-client-helper, http-requests, rest-client, rest-library
- Language: TypeScript
- Homepage:
- Size: 353 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README

# Kulala Core
[](https://github.com/mistweaverco/kulala-core/graphs/contributors)
[](https://github.com/mistweaverco/kulala-core/releases/latest)
[](https://github.com/orgs/mistweaverco/projects/3/views/1?filterQuery=repo%3Amistweaverco%2Fkulala-core)
[](https://discord.gg/QyVQmfY4Rt)
Kulala is swahili for "rest" or "relax."
A straightforwarded, powerful, and extendable HTTP client library.
It powers the [Kulala toolchain](https://getkulala.net),
and can be used as a standalone library.
## Overview
A RESTful API is a web service architecture that adheres to
specific constraints:
- statelessness,
- uniform interface,
- client-server separation
Typically using HTTP methods like `GET`, `POST`, `PUT`, and `DELETE`.
It uses standard web protocols to enable interoperability
between distributed systems.
## Features
### Request types
- HTTP RESTful (1.0, 1.1, 2, 3)
- GraphQL (queries, mutations)
### Variables
- Host Environment
- Document variables
- Request scoped variables
- `http-client.env` files
- Built-in support for [kuba](https://kuba.mwco.app)
### Scripting
Supports JavaScript, Lua, and TypeScript for:
- Pre-request
- Post-request
- Conditional
- Inline
- External
### Authentication
- Basic
- Bearer
- OAuth 2.0
### Automation and testing
Assertions, automated testing and reporting
is compatible with the IntelliJ HTTP Client:
## Usage
See the [examples][examples]
directory for usage examples.
### curl binary
Resolution order: `KULALA_CURL_PATH` (if set),
then a pinned copy under the user cache (for example on Linux: `~/.local/share/kulala-core/cache/curl/-/curl`),
then **curl** on your `PATH`,
then a one-time download of a pinned static build (SHA-256 verified) into that cache.
You can override the data or cache root with `KULALA_CORE_DATA_DIR` / `KULALA_CORE_CACHE_DIR`.
- **Published library** (`dist/`): the npm build sets `__KULALA_EMBED_CURL__=false`, so the package does **not** embed curl from the machine that ran `npm publish`.
- **`bun build --compile`**: run `packages/core/scripts/generate-vendored-curl.ts` (optionally with `--target=bun-…` for cross-compiles) so the matching curl is present in the cache and embedded for that build, then compile with `--define __KULALA_EMBED_CURL__=true`.
[examples]: https://github.com/mistweaverco/kulala-core/tree/main/examples