{"id":43443915,"url":"https://github.com/mistweaverco/kulala-cli","last_synced_at":"2026-06-27T09:01:20.719Z","repository":{"id":316811046,"uuid":"1064897793","full_name":"mistweaverco/kulala-cli","owner":"mistweaverco","description":"A fully-featured ⚡️ HTTP/GraphQL/gRPC/Websocket-client 🐼 interface 🖥️ for your command-line ❤️, that supports the Jetbrains .http spec (with full scripting support).","archived":false,"fork":false,"pushed_at":"2026-06-24T15:07:58.000Z","size":164,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-24T17:07:36.408Z","etag":null,"topics":["cli","curl","graphql","graphql-client","grpc","grpc-client","http-client","jetbrains-http-client","oauth","oauth2","rest","rest-client","websocket-client"],"latest_commit_sha":null,"homepage":"https://kulala.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mistweaverco.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-26T18:14:52.000Z","updated_at":"2026-06-24T15:09:28.000Z","dependencies_parsed_at":"2025-09-26T22:08:58.199Z","dependency_job_id":"89bb1752-4624-4085-b0d4-76536a5ef984","html_url":"https://github.com/mistweaverco/kulala-cli","commit_stats":null,"previous_names":["mistweaverco/kulala-cli"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/mistweaverco/kulala-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mistweaverco%2Fkulala-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mistweaverco%2Fkulala-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mistweaverco%2Fkulala-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mistweaverco%2Fkulala-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mistweaverco","download_url":"https://codeload.github.com/mistweaverco/kulala-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mistweaverco%2Fkulala-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34755216,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","curl","graphql","graphql-client","grpc","grpc-client","http-client","jetbrains-http-client","oauth","oauth2","rest","rest-client","websocket-client"],"created_at":"2026-02-02T23:28:39.957Z","updated_at":"2026-06-27T09:01:20.709Z","avatar_url":"https://github.com/mistweaverco.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n![kulala-cli Logo][logo]\n\n# kulala-cli\n\n[![npm][badge-npm]][link-npm]\n[![Made with love][badge-made-with-love]][contributors]\n[![Discord][badge-discord]][discord]\n[![Development status][badge-development-status]][development-status]\n[![Our manifesto][badge-our-manifesto]][our-manifesto]\n[![AI Policty][badge-ai-policy]][ai-policy]\n\n[Install](#install) •\n[Usage](#usage)\n\n\u003cp\u003e\u003c/p\u003e\n\nA fully-featured 🤏 HTTP/GraphQL/gRPC/Websocket-client 🐼\ninterface 🖥️ for your command-line ❤️,\nthat supports the Jetbrains .http spec (with full scripting support).\n\n\u003cp\u003e\u003c/p\u003e\n\n# Other tools 🔧 from the Kulala 🐼 family 🌈\n\n[Kulala for Neovim][kulala.nvim] •\n[Kulala Formatter (and converter)][kulala-fmt] •\n[Kulala Desktop][kulala-desktop] •\n[Kulala for Visual Studio Code][kulala.vscode] •\n[Kulala Core][kulala-core]\n[Kulala Github Action][kulala-github-action]\n\n---\n\n\u003c/div\u003e\n\n## Install\n\nYou can install kulala-cli globally using `npm`, `bun`, `yarn` or `pnpm`:\n\n```sh\nnpm install -g @mistweaverco/kulala-cli\nbun add -g @mistweaverco/kulala-cli\nyarn global add @mistweaverco/kulala-cli\npnpm add -g @mistweaverco/kulala-cli\n```\n\nYou can also run it directly without installation using\n\n`npx`, `bunx`, `yarn dlx` or `pnpx`:\n\n```sh\nnpx @mistweaverco/kulala-cli run --tests file.http\nbunx @mistweaverco/kulala-cli run --tests file.http\nyarn dlx @mistweaverco/kulala-cli run --tests file.http\npnpx @mistweaverco/kulala-cli run --tests file.http\n```\n\nOn install, kulala-cli downloads a matching\n[kulala-core](https://github.com/mistweaverco/kulala-core)\nbinary automatically.\n\nIf install scripts are disabled\n(for example `npm install --ignore-scripts`),\nthe binary is downloaded on first use instead.\n\nTo use your own kulala-core binary, set `KULALA_CORE_PATH`:\n\n```sh\nexport KULALA_CORE_PATH=/path/to/kulala-core\n```\n\n### Usage\n\nRun a `.http` file and print human-readable output:\n\n```sh\nkulala run file.http\n```\n\nRun a `.http` file and print the raw kulala-core JSON output:\n\n```sh\nkulala run --json file.http\n```\n\nRun a `.http` file and only print test output (full output on failures):\n\n```sh\nkulala run --tests file.http\n```\n\nRun curl with human-readable output (supports normal curl flags):\n\n```sh\nkulala curl -I https://echo.kulala.app/get\nkulala curl -H \"Accept: application/json\" https://echo.kulala.app/get\n```\n\nRun all files in a directory and only print test output:\n\n```sh\nkulala run --tests ./requests\n```\n\nRun all files in a directory (in random order) and only print test output:\n\n```sh\nkulala run --tests --shuffle ./requests\n```\n\nOnly print output when a request fails:\n\n```sh\nkulala run --quiet ./requests\n```\n\nStop after the first failing request or file:\n\n```sh\nkulala run --halt ./requests\n```\n\nSelect an environment for variable resolution:\n\n```sh\nkulala run --tests --env=production file.http\n```\n\nRun a single request by block name (`###` name):\n\n```sh\nkulala run file.http --name MyRequest\n```\n\nRun the request at a cursor location (1-based line and column, same as kulala.nvim):\n\n```sh\nkulala run file.http --line 17\nkulala run file.http --line 19 --column 1\n```\n\nWhen using `--name`, `--line`,\nor `--column`, `\u003cpath\u003e` must be a single `.http` or\n`.rest` file.\n\n### Exit behaviour\n\nkulala-cli exits with code `1` when any request fails. By default, all requests\nin a file and all files in a directory are run even when failures occur. Pass\n`--halt` to stop after the first failing request within a file and skip remaining\nfiles in a directory.\n\nSuccess is determined by kulala-core's `success` flag, so operators such as\n`// @kulala-expect-status-code` are respected (for example, an expected `404` is\ntreated as a pass).\n\n### Development\n\n```sh\npnpm install\npnpm run build\npnpm run lint\nnode dist/cli.cjs --help\n```\n\nTo use a locally built kulala-core binary during development:\n\n```sh\nexport KULALA_CORE_PATH=/path/to/kulala-core/dist/kulala-core\nnode dist/cli.cjs run file.http\n```\n\n## Docker\n\n### Run docker interactively and pseudo-TTY:\n\nRun interactively with a mounted `.http` file:\n\n```sh\ndocker run -it \\\n  -v ${PWD}/test.http:/app/test.http \\\n  ghcr.io/mistweaverco/kulala-cli:latest \\\n  run test.http \\\n --name\n```\n\n### Run docker non-interactively, but with a pseudo-TTY:\n\nRun one request by block name (`###` name) with\na mounted `.http` file and pseudo-TTY:\n\n```sh\ndocker run -t \\\n  -v ${PWD}/test.http:/app/test.http \\\n  ghcr.io/mistweaverco/kulala-cli:latest \\\n  run test.http \\\n --name \"My Request Name\"\n```\n\n### Run docker non-interactively and without a pseudo-TTY; all requests in a directory:\n\nRun all requests in a directory without\na pseudo-TTY (for example, in CI):\n\n```sh\ndocker run \\\n  -v ${PWD}/http-files-dir:/app/http-files-dir \\\n  ghcr.io/mistweaverco/kulala-cli:latest \\\n  run ./http-files-dir\n```\n\n### Build docker and push to GitHub Container Registry:\n\n#### Build and push to GitHub Container Registry:\n\n```sh\ndocker buildx build --push \\\n  -t ghcr.io/mistweaverco/kulala-cli:latest \\\n  -f Dockerfile .\n```\n\n#### Build and push to Docker Hub:\n\n```sh\ndocker buildx build --push \\\n  -t mistweaverco/kulala-cli:latest \\\n  -f Dockerfile .\n```\n\n[logo]: https://raw.githubusercontent.com/mistweaverco/kulala-cli/main/assets/logo.svg\n[badge-npm]: https://img.shields.io/npm/v/@mistweaverco/kulala-cli?style=for-the-badge\n[link-npm]: https://www.npmjs.com/package/@mistweaverco/kulala-cli\n[badge-discord]: https://mistweaverco.com/assets/badges/discord.svg\n[discord]: https://mistweaverco.com/discord\n[badge-made-with-love]: https://mistweaverco.com/assets/badges/made-with-love.svg\n[contributors]: https://github.com/mistweaverco/kulala-cli/graphs/contributors\n[kulala.nvim]: https://github.com/mistweaverco/kulala.nvim\n[kulala-fmt]: https://github.com/mistweaverco/kulala-fmt\n[kulala-desktop]: https://github.com/mistweaverco/kulala-desktop\n[kulala.vscode]: https://github.com/mistweaverco/kulala.vscode\n[kulala-core]: https://github.com/mistweaverco/kulala-core\n[kulala-github-action]: https://github.com/mistweaverco/kulala-github-action\n[demo-image]: https://github.com/user-attachments/assets/a7b3b01f-0115-44dc-94d2-8abd4db6fb60\n[badge-development-status]: https://mistweaverco.com/assets/badges/development-status.svg\n[development-status]: https://mistweaverco.com/roadmap?filter=kulala-cli\n[badge-ai-policy]: https://mistweaverco.com/assets/badges/ai-policy.svg\n[ai-policy]: https://mistweaverco.com/ai-policy\n[badge-our-manifesto]: https://mistweaverco.com/assets/badges/our-manifesto.svg\n[our-manifesto]: https://mistweaverco.com/manifesto\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmistweaverco%2Fkulala-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmistweaverco%2Fkulala-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmistweaverco%2Fkulala-cli/lists"}