{"_id":"@boris.barac/multibunpass","_rev":"5-a7283d8c756da1afd5d2564a58ae9a70","name":"@boris.barac/multibunpass","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"@boris.barac/multibunpass","version":"0.1.0","keywords":["multipass","bun","vm","ubuntu","mcp","ai","sandbox"],"author":"Boris Barac (https://www.npmjs.com/~boris.barac)","license":"MIT","_id":"@boris.barac/multibunpass@0.1.0","maintainers":[{"name":"boris.barac","email":"boris.raptor@gmail.com"}],"homepage":"https://github.com/borisBarac/multiBunPass#readme","bugs":{"url":"https://github.com/borisBarac/multiBunPass/issues"},"bin":{"mbp":"src/cli/index.ts","multibunpass-mcp":"src/mcp/index.ts"},"dist":{"shasum":"903a2f621bf1d8b13770756c2d2ae83b76345477","tarball":"https://registry.npmjs.org/@boris.barac/multibunpass/-/multibunpass-0.1.0.tgz","fileCount":43,"integrity":"sha512-vQM/dqwuhKL4cKIW/9S9seU9w1T/EAwsOu/SBgYh5HOb430WfPbTWK4b1fx/1hTHi9Yywq25eQ9cul8PfGqbxg==","signatures":[{"sig":"MEUCIQDzhaRngBvfiRTb02EOodLk3ytcEtOayJSqEzCWfK6OYwIgJ4kKbKHAwkRS0npgOkFhv6lImpOvZ0EowU29XuW3vT8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":83981},"main":"index.ts","type":"module","types":"index.ts","module":"index.ts","shasum":"903a2f621bf1d8b13770756c2d2ae83b76345477","exports":{".":"./index.ts"},"scripts":{"lint":"biome check .","test":"bun test src/","format":"biome format .","cleanup":"bun src/scripts/cleanup-all.ts","lint:fix":"biome check --write .","test-e2e":"bun test e2e/ --timeout 60000","e2e:setup":"bun e2e/setup.ts","typecheck":"tsc --noEmit","format:fix":"biome format --write .","test:watch":"bun test --watch src/"},"_npmUser":{"name":"boris.barac","email":"boris.raptor@gmail.com"},"_integrity":"sha512-vQM/dqwuhKL4cKIW/9S9seU9w1T/EAwsOu/SBgYh5HOb430WfPbTWK4b1fx/1hTHi9Yywq25eQ9cul8PfGqbxg==","repository":{"url":"git+https://github.com/borisBarac/multiBunPass.git","type":"git"},"_npmVersion":"10.8.3","description":"Multipass is great, but the friction is real. MultiBunPass makes Multipass effortless — get isolated, Bun-preinstalled Ubuntu VMs in seconds, designed for rapid development sessions and AI workflows.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.3.6","yargs":"^18.0.0","@modelcontextprotocol/server":"^2.0.0-alpha.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/yargs":"^17.0.35","@biomejs/biome":"^2.4.12"},"_npmOperationalInternal":{"tmp":"tmp/multibunpass_0.1.0_1778618643074_0.11483179876398308","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@boris.barac/multibunpass","version":"0.1.1","keywords":["multipass","bun","vm","ubuntu","mcp","ai","sandbox"],"author":"Boris Barac (https://www.npmjs.com/~boris.barac)","license":"MIT","_id":"@boris.barac/multibunpass@0.1.1","maintainers":[{"name":"boris.barac","email":"boris.raptor@gmail.com"}],"homepage":"https://github.com/borisBarac/multiBunPass#readme","bugs":{"url":"https://github.com/borisBarac/multiBunPass/issues"},"bin":{"mbp":"src/cli/index.ts","multibunpass-mcp":"src/mcp/index.ts"},"dist":{"shasum":"1ba7043b201f5481e4e890559c4c48ddc6477178","tarball":"https://registry.npmjs.org/@boris.barac/multibunpass/-/multibunpass-0.1.1.tgz","fileCount":43,"integrity":"sha512-xYt6k9C92rUG7i4YaoKKcDPhjTdMWczq5d4lWQjI5vmZyfzDOyzrt06iVOdTi0e7cG02SeJGL1zHdNSurat3FQ==","signatures":[{"sig":"MEUCIQCA83Ew2c91s4XL7St346wo6KPM3xhrzM7AcdMFoWjaeQIgFne5HfKRC2e+EPVsMISu0zneA5OA0KLqQj4FrcYWwpo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84803},"main":"index.ts","type":"module","types":"index.ts","module":"index.ts","shasum":"1ba7043b201f5481e4e890559c4c48ddc6477178","exports":{".":"./index.ts"},"scripts":{"lint":"biome check .","test":"bun test src/","format":"biome format .","cleanup":"bun src/scripts/cleanup-all.ts","lint:fix":"biome check --write .","test-e2e":"bun test e2e/ --timeout 60000","e2e:setup":"bun e2e/setup.ts","typecheck":"tsc --noEmit","format:fix":"biome format --write .","test:watch":"bun test --watch src/"},"_npmUser":{"name":"boris.barac","email":"boris.raptor@gmail.com"},"_integrity":"sha512-xYt6k9C92rUG7i4YaoKKcDPhjTdMWczq5d4lWQjI5vmZyfzDOyzrt06iVOdTi0e7cG02SeJGL1zHdNSurat3FQ==","repository":{"url":"git+https://github.com/borisBarac/multiBunPass.git","type":"git"},"_npmVersion":"10.8.3","description":"Multipass is great, but the friction is real. MultiBunPass makes Multipass effortless — get isolated, Bun-preinstalled Ubuntu VMs in seconds, designed for rapid development sessions and AI workflows.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.3.6","yargs":"^18.0.0","@modelcontextprotocol/server":"^2.0.0-alpha.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/yargs":"^17.0.35","@biomejs/biome":"^2.4.12"},"_npmOperationalInternal":{"tmp":"tmp/multibunpass_0.1.1_1778619224177_0.3728733634583459","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@boris.barac/multibunpass","version":"0.1.2","keywords":["multipass","bun","vm","ubuntu","mcp","ai","sandbox"],"author":"Boris Barac (https://www.npmjs.com/~boris.barac)","license":"MIT","_id":"@boris.barac/multibunpass@0.1.2","maintainers":[{"name":"boris.barac","email":"boris.raptor@gmail.com"}],"homepage":"https://github.com/borisBarac/multiBunPass#readme","bugs":{"url":"https://github.com/borisBarac/multiBunPass/issues"},"bin":{"mbp":"src/cli/index.ts","multibunpass-mcp":"src/mcp/index.ts"},"dist":{"shasum":"619b540ca5a49db4e5b14bceff763bd0c8a87608","tarball":"https://registry.npmjs.org/@boris.barac/multibunpass/-/multibunpass-0.1.2.tgz","fileCount":43,"integrity":"sha512-uCvEsnSRDf5wCyBUYxCmyBztIWJw5bNV4jYo4GVqS/595g2wfwjfnNLbCXnOZJwaxTVP+F0TtxB7w2Ekjb1CMw==","signatures":[{"sig":"MEUCIDQA/RLkbedEpdAotQbvxlCpp5UaiaepdFhfsG0wGr4JAiEAjhxK2/gw+H0qZlTpearQ+Ezkz7UprDvsFYVal+Qv0vE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84840},"main":"index.ts","type":"module","types":"index.ts","module":"index.ts","shasum":"619b540ca5a49db4e5b14bceff763bd0c8a87608","exports":{".":"./index.ts"},"scripts":{"lint":"biome check .","test":"bun test src/","format":"biome format .","cleanup":"bun src/scripts/cleanup-all.ts","lint:fix":"biome check --write .","test-e2e":"bun test e2e/ --timeout 60000","e2e:setup":"bun e2e/setup.ts","typecheck":"tsc --noEmit","format:fix":"biome format --write .","test:watch":"bun test --watch src/"},"_npmUser":{"name":"boris.barac","email":"boris.raptor@gmail.com"},"_integrity":"sha512-uCvEsnSRDf5wCyBUYxCmyBztIWJw5bNV4jYo4GVqS/595g2wfwjfnNLbCXnOZJwaxTVP+F0TtxB7w2Ekjb1CMw==","repository":{"url":"git+https://github.com/borisBarac/multiBunPass.git","type":"git"},"_npmVersion":"10.8.3","description":"Multipass is great, but the friction is real. MultiBunPass makes Multipass effortless — get isolated, Bun-preinstalled Ubuntu VMs in seconds, designed for rapid development sessions and AI workflows.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.3.6","yargs":"^18.0.0","@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/server":"^2.0.0-alpha.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/yargs":"^17.0.35","@biomejs/biome":"^2.4.12"},"_npmOperationalInternal":{"tmp":"tmp/multibunpass_0.1.2_1778619835666_0.36151257166232953","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@boris.barac/multibunpass","version":"0.1.3","keywords":["multipass","bun","vm","ubuntu","mcp","ai","sandbox"],"author":"Boris Barac (https://www.npmjs.com/~boris.barac)","license":"MIT","_id":"@boris.barac/multibunpass@0.1.3","maintainers":[{"name":"boris.barac","email":"boris.raptor@gmail.com"}],"homepage":"https://github.com/borisBarac/multiBunPass#readme","bugs":{"url":"https://github.com/borisBarac/multiBunPass/issues"},"bin":{"mbp":"src/cli/index.ts","multibunpass-mcp":"src/mcp/index.ts"},"dist":{"shasum":"7a45a54251d43557fd03bdb489bd5a4a25c6e126","tarball":"https://registry.npmjs.org/@boris.barac/multibunpass/-/multibunpass-0.1.3.tgz","fileCount":43,"integrity":"sha512-RLs4s3zXTeYoNJYe3uMg1rw27SBOILNxNK4q9GMARpZk/c0rJxeNbIvSxx6zfqlN73UlmjOVZDTPwptyM2SwUQ==","signatures":[{"sig":"MEQCIExCO345gOe4cVMj3D+VB+mk2sjkWF2LfeK4CdcEbt5MAiAKPGXIMRTJPbDmNUoLx47bjPT4I+WG3UuLtt6isiz5hg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":84187},"main":"index.ts","type":"module","types":"index.ts","module":"index.ts","shasum":"7a45a54251d43557fd03bdb489bd5a4a25c6e126","exports":{".":"./index.ts"},"scripts":{"lint":"biome check .","test":"bun test src/","format":"biome format .","cleanup":"bun src/scripts/cleanup-all.ts","lint:fix":"biome check --write .","test-e2e":"bun test e2e/ --timeout 60000","e2e:setup":"bun e2e/setup.ts","typecheck":"tsc --noEmit","format:fix":"biome format --write .","test:watch":"bun test --watch src/"},"_npmUser":{"name":"boris.barac","email":"boris.raptor@gmail.com"},"_integrity":"sha512-RLs4s3zXTeYoNJYe3uMg1rw27SBOILNxNK4q9GMARpZk/c0rJxeNbIvSxx6zfqlN73UlmjOVZDTPwptyM2SwUQ==","repository":{"url":"git+https://github.com/borisBarac/multiBunPass.git","type":"git"},"_npmVersion":"10.8.3","description":"Multipass is great, but the friction is real. MultiBunPass makes Multipass effortless — get isolated, Bun-preinstalled Ubuntu VMs in seconds, designed for rapid development sessions and AI workflows.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.3.6","yargs":"^18.0.0","@modelcontextprotocol/server":"^2.0.0-alpha.2"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","@types/yargs":"^17.0.35","@biomejs/biome":"^2.4.12"},"_npmOperationalInternal":{"tmp":"tmp/multibunpass_0.1.3_1778620497087_0.09536428034093625","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@boris.barac/multibunpass","version":"0.1.4","description":"Multipass is great, but the friction is real. MultiBunPass makes Multipass effortless — get isolated, Bun-preinstalled Ubuntu VMs in seconds, designed for rapid development sessions and AI workflows.","author":{"name":"Boris Barac","url":"https://www.npmjs.com/~boris.barac"},"license":"MIT","homepage":"https://github.com/borisBarac/multiBunPass#readme","repository":{"type":"git","url":"git+https://github.com/borisBarac/multiBunPass.git"},"bugs":{"url":"https://github.com/borisBarac/multiBunPass/issues"},"keywords":["multipass","bun","vm","ubuntu","mcp","ai","sandbox"],"main":"index.ts","module":"index.ts","types":"index.ts","exports":{".":"./index.ts"},"bin":{"multibunpass-mcp":"src/mcp/index.ts","mbp":"src/cli/index.ts"},"publishConfig":{"registry":"https://registry.npmjs.org","access":"public"},"type":"module","scripts":{"lint":"biome check .","lint:fix":"biome check --write .","format":"biome format .","format:fix":"biome format --write .","typecheck":"tsc --noEmit","test":"bun test src/","test-e2e":"bun test e2e/ --timeout 60000","test:watch":"bun test --watch src/","cleanup":"bun src/scripts/cleanup-all.ts","e2e:setup":"bun e2e/setup.ts"},"devDependencies":{"@biomejs/biome":"^2.4.12","@types/bun":"latest","@types/yargs":"^17.0.35"},"dependencies":{"@modelcontextprotocol/server":"^2.0.0-alpha.2","yargs":"^18.0.0","zod":"^4.3.6"},"gitHead":"7db7c81ef08747d5253e3b380b57f5d0b5be4b95","_id":"@boris.barac/multibunpass@0.1.4","_nodeVersion":"26.4.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-xfrD1IGg2GaAy0T2moKB3/Hn7Ml7PyMwHoRR5kIpwMH6HJPt6kbxIeo36nNKr5rEfHAogBrH8RYtXPRWC5Z7BQ==","shasum":"e02afcf22ed062f76ad2a5d871b4cf78e92f7c78","tarball":"https://registry.npmjs.org/@boris.barac/multibunpass/-/multibunpass-0.1.4.tgz","fileCount":43,"unpackedSize":88453,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCFOkVKTbpsQ3WBc0uPEhivNTidjP3WiHumSmcBRzP6ZwIhAOrH5sJRrhhtQ3d+PJFlxyIjSf8nzl0DQB/umUcL05X2"}]},"_npmUser":{"name":"boris.barac","email":"boris.raptor@gmail.com"},"directories":{},"maintainers":[{"name":"boris.barac","email":"boris.raptor@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/multibunpass_0.1.4_1782515344089_0.2629331364369847"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-12T20:44:02.963Z","modified":"2026-06-26T23:09:04.332Z","0.1.0":"2026-05-12T20:44:03.245Z","0.1.1":"2026-05-12T20:53:44.309Z","0.1.2":"2026-05-12T21:03:55.834Z","0.1.3":"2026-05-12T21:14:57.249Z","0.1.4":"2026-06-26T23:09:04.235Z"},"bugs":{"url":"https://github.com/borisBarac/multiBunPass/issues"},"author":{"name":"Boris Barac","url":"https://www.npmjs.com/~boris.barac"},"license":"MIT","homepage":"https://github.com/borisBarac/multiBunPass#readme","keywords":["multipass","bun","vm","ubuntu","mcp","ai","sandbox"],"repository":{"type":"git","url":"git+https://github.com/borisBarac/multiBunPass.git"},"description":"Multipass is great, but the friction is real. MultiBunPass makes Multipass effortless — get isolated, Bun-preinstalled Ubuntu VMs in seconds, designed for rapid development sessions and AI workflows.","maintainers":[{"name":"boris.barac","email":"boris.raptor@gmail.com"}],"readme":"# MultiBunPass\n\n**Multipass is great, but the friction is real.** Spinning up a simple server (files + tool install) usually requires 5 or 6 commands and a custom `cloud-init` config. It's error-prone for humans, and even worse for AI agents—who frequently lose track of their environment.\n\n**MultiBunPass** makes Multipass effortless. Get isolated, **Bun-preinstalled** Ubuntu VMs in seconds, designed specifically for rapid development sessions and AI workflows.\n\n---\n\n## Why MultiBunPass?\n\n* **Zero-Config Bun VMs** – Every VM comes with **Bun installed** and ready to go. Run `mbp create` and start coding immediately.\n* **Built for AI Agents** – Expose VMs via **MCP**. No more agents getting lost; they get a structured, reliable sandbox they can actually navigate.\n* **TCP Output Streaming** – Stream command output directly to a TCP server for real-time monitoring and centralized logging.\n* **Smart `exec` Commands** – Automatically loads profiles and environment variables so your scripts never fail due to missing paths.\n* **Three Interfaces** – A **CLI** for humans, an **SDK** for programs, and an **MCP server** for LLMs.\n* **Folder Sync** – Automatically push local files to your VM\n* **Customizable** – Use the built-in defaults or override with your own `cloud-init` YAML for bespoke environments.\n\n## Requirements\n\n- macOS or Linux with [Multipass](https://multipass.run/) installed\n- [Bun](https://bun.sh/) runtime\n\n## Quick Start\n\n### Install\n\n```bash\nbun add @boris.barac/multibunpass\n```\n\nFor CLI and MCP server (global install):\n\n```bash\nbun add -g @boris.barac/multibunpass\n```\n### Create a VM and run your code\n\n```bash\nmbp create my-app --local-path ./my-project\nmbp exec my-app --local-path ./my-project -- bun run dev\n```\n\nThat's it. MultiBunPass launches an Ubuntu LTS VM, installs Bun via cloud-init, transfers your project into `~/app/`, and flattens the directory structure.\n\n## Custom VM Setup\n\nDon't like the defaults? Drop a `mbp-cloud-config.yaml` in your project to customize VM provisioning. Install Node.js, Python, databases, or anything else via standard cloud-init:\n\n```yaml\n#cloud-config\npackage_update: true\npackages:\n  - nodejs\n  - postgresql\nruncmd:\n  - echo \"your setup here\"\n```\n\nDiscovery order: `MBP_CLOUD_CONFIG` env var > `mbp-cloud-config.yaml` > `.multibunpass/cloud-config.yaml` > `~/.config/multibunpass/cloud-config.yaml` > built-in Bun default.\n\n## Interfaces\n\nMultiBunPass provides three ways to interact with your VMs:\n\n### CLI (`mbp`)\n\n```bash\nmbp list                                    # list all VMs\nmbp create my-app --local-path ./project    # create + provision\nmbp exec my-app --local-path ./project -- bun test  # run commands\nmbp sync my-app --local-path ./project      # re-sync files\nmbp info my-app                             # CPU, memory, disk, IP\nmbp status my-app                           # running or stopped\nmbp stop my-app                             # stop\nmbp start my-app                            # restart\nmbp delete my-app                           # permanently remove\n```\n\nEvery command supports `--json` for machine-readable output.\n\n### TCP Output Streaming\n\n\nWorks with any TCP server. The `exec` command connects to the port and pipes stdout/stderr in real time.\n\n**No SSH required.** The VM runs your server, but stdout/stderr are streamed back to your machine over a plain TCP socket — no SSH keys, no remote shells, no connection management. For AI agents this is especially useful: they can start a TCP listener, run `exec` with `--stream-port`, and read structured output directly from the socket without juggling SSH sessions or parsing remote terminal output.\n\nStream command output to a TCP listener for real-time monitoring or centralized logging:\n\n```bash\n# Terminal 1: start a listener\nnc -l localhost 8080\n\n# Terminal 2: run with streaming\nmbp exec my-app --local-path ./project --stream-port 8080 -- bun test\n```\n\n\n### SDK (`cli_wrapper`)\n\nUse MultiBunPass as a library in your own tools:\n\n```ts\nimport { MultiBunPassClient } from \"@boris.barac/multibunpass\";\n\nconst client = new MultiBunPassClient();\n\nconst vm = await client.create(\"my-app\", \"/path/to/project\");\nawait vm.exec(\"bun test\");\nconst info = await vm.info();\nawait vm.pushFiles(); // re-sync after local changes\nawait client.delete(\"my-app\");\n```\n\n### MCP Server (`multibunpass-mcp`)\n\nExpose VM management as tools for AI agents via the Model Context Protocol:\n\n```json\n{\n  \"mcpServers\": {\n    \"multibunpass\": {\n      \"command\": \"multibunpass-mcp\"\n    }\n  }\n}\n```\n\nYour AI agent can create VMs, push code, run commands, and manage lifecycle -- all through structured tool calls with schema validation.\n\n## How It Works\n\n```\n┌──────────────────────────────────────────────────┐\n│                  Your Machine                     │\n│                                                   │\n│  ┌─────────┐  ┌──────────────┐  ┌─────────────┐ │\n│  │   CLI   │  │  MCP Server  │  │  Your Code   │ │\n│  │  (mbp)  │  │  (stdio)     │  │  (SDK)       │ │\n│  └────┬────┘  └──────┬───────┘  └──────┬───────┘ │\n│       │              │                 │          │\n│       └──────────────┼─────────────────┘          │\n│                      │                            │\n│              ┌───────┴───────┐                    │\n│              │  cli_wrapper  │                    │\n│              │  (SDK core)   │                    │\n│              └───────┬───────┘                    │\n│                      │ execMultipass()            │\n└──────────────────────┼────────────────────────────┘\n                       │\n              ┌────────┴────────┐\n              │   Multipass     │\n              │   (local VMs)   │\n              │                 │\n              │  ┌───────────┐  │\n              │  │  Ubuntu   │  │\n              │  │  + Bun    │  │\n              │  │  ~/app/   │  │\n              │  └───────────┘  │\n              └─────────────────┘\n```\n\n## Documentation\n\n| Module | Description | README |\n|--------|-------------|--------|\n| **CLI** | `mbp` command-line interface with 9 commands | [`src/cli/README.md`](src/cli/README.md) |\n| **SDK** | `MultiBunPassClient` and `VM` class API, types, cloud-config | [`src/cli_wrapper/README.md`](src/cli_wrapper/README.md) |\n| **MCP Server** | 8 AI tools with Zod schemas, Claude Desktop integration | [`src/mcp/README.md`](src/mcp/README.md) |\n\n## Configuration\n\nMultiBunPass is zero-config out of the box. Customize with environment variables:\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| `MBP_REMOTE_PATH` | Default remote path inside VMs | `~/app/` |\n| `MBP_CLOUD_CONFIG` | Path to custom cloud-init YAML | auto-discovered |\n| `LOG_LEVEL` | Verbosity: `debug`, `info`, `warn`, `error`, `silent` | `warn` |\n\nCloud-init config is auto-discovered from `mbp-cloud-config.yaml`, `.multibunpass/cloud-config.yaml`, or `~/.config/multibunpass/cloud-config.yaml`. Falls back to the built-in Bun installer.\n\n## Scripts\n\n```bash\nbun test              # unit tests\nbun run test-e2e      # end-to-end tests (requires Multipass)\nbun run lint          # biome check\nbun run format:fix    # biome format\nbun run typecheck     # TypeScript check\n```\n","readmeFilename":"README.md"}