{"_id":"@daytona/n8n-nodes-daytona","_rev":"4-068c2f2d52a1821fe1ed166b057351c2","name":"@daytona/n8n-nodes-daytona","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@daytona/n8n-nodes-daytona","version":"0.1.0","keywords":["n8n-community-node-package","n8n","daytona","sandbox","code-execution","ai-agents"],"author":{"url":"https://www.daytona.io","name":"Daytona Platforms Inc.","email":"support@daytona.io"},"license":"MIT","_id":"@daytona/n8n-nodes-daytona@0.1.0","maintainers":[{"name":"mivanda","email":"mislavivanda454@gmail.com"},{"name":"mdzaja","email":"mirkodzaja0@gmail.com"},{"name":"gdraganic","email":"gogi.strat@gmail.com"}],"homepage":"https://github.com/daytona/n8n-nodes-daytona#readme","bugs":{"url":"https://github.com/daytona/n8n-nodes-daytona/issues"},"n8n":{"nodes":["dist/nodes/Daytona/Daytona.node.js"],"strict":true,"credentials":["dist/credentials/DaytonaApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"214dee0ba17256fd0b587430f9647d2834e964ab","tarball":"https://registry.npmjs.org/@daytona/n8n-nodes-daytona/-/n8n-nodes-daytona-0.1.0.tgz","fileCount":126,"integrity":"sha512-pdBY7US02lwliZsYUQ6P/hHYZf7DHVm9wguPH66hzIK23he3CBpRpFOvW2hD4gC+Pfm1EyLF6vOagFIzlh/jNw==","signatures":[{"sig":"MEYCIQD9GjkedPQIF1rmcab71vFBh/JEIE5uOhT1gcYC6tD0mwIhAJfv8b042C5+5kW1l+z0dy3bl9CWeNvmcYDsvlFFWMiO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@daytona%2fn8n-nodes-daytona@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":258613},"gitHead":"856881de635bd0c24986ee2823847260ed413384","scripts":{"dev":"n8n-node dev","lint":"n8n-node lint","test":"vitest run","build":"n8n-node build","release":"n8n-node release","lint:fix":"n8n-node lint --fix","test:watch":"vitest","build:watch":"tsc --watch","prepublishOnly":"n8n-node prerelease"},"_npmUser":{"name":"mivanda","email":"mislavivanda454@gmail.com"},"repository":{"url":"git+https://github.com/daytona/n8n-nodes-daytona.git","type":"git"},"_npmVersion":"11.12.1","description":"n8n community node for Daytona — manage sandboxes/snapshots/volumes, execute code and commands, drive Git pipelines, and manage the sandbox filesystem inside Daytona from your workflows.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.2","eslint":"9.32.0","vitest":"^4.1.5","prettier":"3.6.2","release-it":"^19.0.4","typescript":"5.9.2","@n8n/node-cli":"*"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-daytona_0.1.0_1779358417322_0.4677532414601653","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@daytona/n8n-nodes-daytona","version":"0.1.1","keywords":["n8n-community-node-package","n8n","daytona","sandbox","code-execution","ai-agents"],"author":{"url":"https://www.daytona.io","name":"Daytona Platforms Inc.","email":"support@daytona.io"},"license":"MIT","_id":"@daytona/n8n-nodes-daytona@0.1.1","maintainers":[{"name":"mivanda","email":"mislavivanda454@gmail.com"},{"name":"mdzaja","email":"mirkodzaja0@gmail.com"},{"name":"gdraganic","email":"gogi.strat@gmail.com"}],"homepage":"https://github.com/daytona/n8n-nodes-daytona#readme","bugs":{"url":"https://github.com/daytona/n8n-nodes-daytona/issues"},"n8n":{"nodes":["dist/nodes/Daytona/Daytona.node.js"],"strict":true,"credentials":["dist/credentials/DaytonaApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"7bdbf8fd88edf25b2a41d714975227667b8343ef","tarball":"https://registry.npmjs.org/@daytona/n8n-nodes-daytona/-/n8n-nodes-daytona-0.1.1.tgz","fileCount":126,"integrity":"sha512-Ws7BIkW2TFOIVv3+0kZnTpVdAroVwh6fkTUogW7HKPRPfvAChYTuqj5ZkaCV/gWCKsK6fYQvctR5mrsrVg/E8A==","signatures":[{"sig":"MEUCIHXYxOUDm9gt+uLeT0EtkGDTHkz7aYb+q6QmyrZbD7UIAiEAutAg2YIaYSpXRVJXPsAw99sX6vGtbGyvk3Egi1cvBy4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@daytona%2fn8n-nodes-daytona@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":258599},"gitHead":"3ba206acb67d11fbfbb79f772aa555e4698826a6","scripts":{"dev":"n8n-node dev","lint":"n8n-node lint","test":"vitest run","build":"n8n-node build","release":"n8n-node release","lint:fix":"n8n-node lint --fix","test:watch":"vitest","build:watch":"tsc --watch","prepublishOnly":"n8n-node prerelease"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c57ebb61-4fa7-4656-8759-0056083e0965"}},"repository":{"url":"git+https://github.com/daytona/n8n-nodes-daytona.git","type":"git"},"_npmVersion":"11.12.1","description":"n8n community node for Daytona — manage sandboxes/snapshots/volumes, execute code and commands, drive Git pipelines, and manage the sandbox filesystem inside Daytona from your workflows.","directories":{},"_nodeVersion":"24.15.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.2","eslint":"9.32.0","vitest":"^4.1.5","prettier":"3.6.2","release-it":"^19.0.4","typescript":"5.9.2","@n8n/node-cli":"*"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-daytona_0.1.1_1779463173061_0.4125085356580884","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@daytona/n8n-nodes-daytona","version":"0.1.2","keywords":["n8n-community-node-package","n8n","daytona","sandbox","code-execution","ai-agents"],"author":{"url":"https://www.daytona.io","name":"Daytona Platforms Inc.","email":"support@daytona.io"},"license":"MIT","_id":"@daytona/n8n-nodes-daytona@0.1.2","maintainers":[{"name":"mivanda","email":"mislavivanda454@gmail.com"},{"name":"mdzaja","email":"mirkodzaja0@gmail.com"},{"name":"gdraganic","email":"gogi.strat@gmail.com"}],"homepage":"https://github.com/daytona/n8n-nodes-daytona#readme","bugs":{"url":"https://github.com/daytona/n8n-nodes-daytona/issues"},"n8n":{"nodes":["dist/nodes/Daytona/Daytona.node.js"],"strict":true,"credentials":["dist/credentials/DaytonaApi.credentials.js"],"n8nNodesApiVersion":1},"dist":{"shasum":"6015f45fb6d9085a7cce35e48759e70f44bd23d3","tarball":"https://registry.npmjs.org/@daytona/n8n-nodes-daytona/-/n8n-nodes-daytona-0.1.2.tgz","fileCount":126,"integrity":"sha512-3crmzvOELKOjrYzR+VfbTbg2YOOGAs0e49yHQdl55mJK6YGc4OwmCfvrNn2rHSWKhnmPs9TGU3kpPf+JaYDicA==","signatures":[{"sig":"MEUCIAdruox9X+Ud8YckhfgttTZyJB3xVAJ8H5yuAv6MuM8kAiEAi9mREbnQEvX2mbvOfhG771k0G7nTlgkSERjBLXgLwSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@daytona%2fn8n-nodes-daytona@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":256790},"gitHead":"3dd5a3e8dcb525a578c61042f26387f833aec860","scripts":{"dev":"n8n-node dev","lint":"n8n-node lint","test":"vitest run","build":"n8n-node build","release":"n8n-node release","lint:fix":"n8n-node lint --fix","test:watch":"vitest","build:watch":"tsc --watch","prepublishOnly":"n8n-node prerelease"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c57ebb61-4fa7-4656-8759-0056083e0965"}},"repository":{"url":"git+https://github.com/daytona/n8n-nodes-daytona.git","type":"git"},"_npmVersion":"11.13.0","description":"n8n community node for Daytona — manage sandboxes/snapshots/volumes, execute code and commands, drive Git pipelines, and manage the sandbox filesystem inside Daytona from your workflows.","directories":{},"_nodeVersion":"24.16.0","publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^17.4.2","eslint":"9.32.0","vitest":"^4.1.5","prettier":"3.6.2","release-it":"^19.0.4","typescript":"5.9.2","@n8n/node-cli":"*"},"peerDependencies":{"n8n-workflow":"*"},"_npmOperationalInternal":{"tmp":"tmp/n8n-nodes-daytona_0.1.2_1781098998575_0.23992498309388832","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@daytona/n8n-nodes-daytona","version":"0.1.3","description":"n8n community node for Daytona — manage sandboxes/snapshots/volumes, execute code and commands, drive Git pipelines, and manage the sandbox filesystem inside Daytona from your workflows.","license":"MIT","homepage":"https://github.com/daytona/integrations/tree/main/packages/n8n-nodes-daytona#readme","keywords":["n8n-community-node-package","n8n","daytona","sandbox","code-execution","ai-agents"],"author":{"name":"Daytona Platforms Inc.","email":"support@daytona.io","url":"https://www.daytona.io"},"repository":{"type":"git","url":"git+https://github.com/daytona/integrations.git","directory":"packages/n8n-nodes-daytona"},"bugs":{"url":"https://github.com/daytona/integrations/issues"},"scripts":{"build":"n8n-node build","build:watch":"tsc --watch","dev":"n8n-node dev","lint":"n8n-node lint","lint:fix":"n8n-node lint --fix","prepublishOnly":"n8n-node prerelease","test":"vitest run","test:watch":"vitest"},"publishConfig":{"access":"public","provenance":true},"n8n":{"n8nNodesApiVersion":1,"strict":true,"credentials":["dist/credentials/DaytonaApi.credentials.js"],"nodes":["dist/nodes/Daytona/Daytona.node.js"]},"devDependencies":{"@n8n/node-cli":"*","dotenv":"^17.4.2","eslint":"9.32.0","prettier":"3.6.2","typescript":"5.9.2","vitest":"^4.1.5"},"peerDependencies":{"n8n-workflow":"*"},"gitHead":"83112615660b20da9e136965232931d793c05599","_id":"@daytona/n8n-nodes-daytona@0.1.3","_nodeVersion":"24.17.0","_npmVersion":"11.18.0","dist":{"integrity":"sha512-I5oC4/d1nQGBe31njb/g2X6pxzKJeVVjmfpqxetasZiH1HKkazxWGfL9GGEZv6bpf2MjQD4fpyOIgkwFiyWsCg==","shasum":"02d903b6df98973ccf1f7282cf2bfb016ee60869","tarball":"https://registry.npmjs.org/@daytona/n8n-nodes-daytona/-/n8n-nodes-daytona-0.1.3.tgz","fileCount":126,"unpackedSize":264566,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@daytona%2fn8n-nodes-daytona@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHonL4zxlGdHhweuxq0/WOqMkv+e+l/e+QUUhtLpveNoAiEA+PJppmhfPsYadTWlAP+HtgOF7HYmtlpCnd5Ib6Lvzmk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ecb77e32-1d71-4639-9622-f686e5bbb69d"}},"directories":{},"maintainers":[{"name":"mivanda","email":"mislavivanda454@gmail.com"},{"name":"mdzaja","email":"mirkodzaja0@gmail.com"},{"name":"gdraganic","email":"gogi.strat@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/n8n-nodes-daytona_0.1.3_1782763693003_0.9540883394737123"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-21T10:13:37.174Z","modified":"2026-06-29T20:08:13.472Z","0.1.0":"2026-05-21T10:13:37.446Z","0.1.1":"2026-05-22T15:19:33.202Z","0.1.2":"2026-06-10T13:43:18.727Z","0.1.3":"2026-06-29T20:08:13.186Z"},"bugs":{"url":"https://github.com/daytona/integrations/issues"},"author":{"name":"Daytona Platforms Inc.","email":"support@daytona.io","url":"https://www.daytona.io"},"license":"MIT","homepage":"https://github.com/daytona/integrations/tree/main/packages/n8n-nodes-daytona#readme","keywords":["n8n-community-node-package","n8n","daytona","sandbox","code-execution","ai-agents"],"repository":{"type":"git","url":"git+https://github.com/daytona/integrations.git","directory":"packages/n8n-nodes-daytona"},"description":"n8n community node for Daytona — manage sandboxes/snapshots/volumes, execute code and commands, drive Git pipelines, and manage the sandbox filesystem inside Daytona from your workflows.","maintainers":[{"name":"mivanda","email":"mislavivanda454@gmail.com"},{"name":"mdzaja","email":"mirkodzaja0@gmail.com"},{"name":"gdraganic","email":"gogi.strat@gmail.com"}],"readme":"# @daytona/n8n-nodes-daytona\n\nThe official [Daytona](https://www.daytona.io) community node for [n8n](https://n8n.io).\n\n## Overview\n\n[Daytona](https://www.daytona.io) provides secure, elastic sandbox infrastructure for AI agents. Each sandbox is a complete, isolated environment that is fully programmable, spun up on demand, and built for autonomous use without human intervention.\n\nUsing n8n, you can integrate Daytona into any automated workflow: create sandboxes from snapshots or custom Docker images, manage the full sandbox lifecycle, execute code and shell commands, expose running services via preview URLs, drive a complete Git pipeline (clone, status, add, commit, push, pull, checkout), and manage the sandbox filesystem (upload, download, list, move, delete, folder creation) — all as composable steps alongside thousands of other n8n nodes.\n\n## Contents\n\n- [@daytona/n8n-nodes-daytona](#daytonan8n-nodes-daytona)\n  - [Overview](#overview)\n  - [Contents](#contents)\n  - [Installation](#installation)\n  - [Credentials](#credentials)\n  - [Operations](#operations)\n    - [Operation behavior notes](#operation-behavior-notes)\n    - [AI Agent integration](#ai-agent-integration)\n  - [Examples](#examples)\n  - [Compatibility](#compatibility)\n  - [Development](#development)\n    - [Tests](#tests)\n    - [Lint + build](#lint--build)\n  - [Resources](#resources)\n  - [License](#license)\n\n## Installation\n\nOnce published, install from inside n8n:\n\n1. Go to **Settings → Community Nodes**.\n2. Click **Install a community node**.\n3. Enter `@daytona/n8n-nodes-daytona` and click **Install**.\n4. The Daytona node appears in the node search panel after refresh.\n\nFor local development against an unpublished version, see [Development](#development).\n\n## Credentials\n\nCreate an API key at [app.daytona.io/dashboard/keys](https://app.daytona.io/dashboard/keys), then add a **Daytona API** credential in n8n.\n\n| Field | Required | Description |\n|---|---|---|\n| **API Key** | Yes | Bearer token from the Daytona dashboard. Stored encrypted by n8n. |\n| **Base URL** | No (default `https://app.daytona.io/api`) | Override only when targeting a self-hosted Daytona instance. |\n| **Organization ID** | No | Required when authenticating with a JWT token. Always safe to set with an API key — Daytona accepts the header on every request. Sent as `X-Daytona-Organization-ID`. |\n\nThe credential is verified against `GET /api-keys/current` when you save — n8n reports success or failure inline.\n\n## Operations\n\n| Resource | Operation | Description |\n|---|---|---|\n| **Sandbox** | Create | Create a sandbox. Set **Snapshot** (pre-built template ID/name) or **Image** (Docker image reference like `python:3.11`). Snapshot takes precedence if both are set; if neither is set, Daytona's organization default snapshot is used. Optional name, ephemeral flag, and advanced options (CPU/memory/disk, region, env vars, labels, network policy, auto-stop/archive/delete intervals). Optional poll-until-`started`. |\n| | Get | Fetch a single sandbox by ID. |\n| | Get Many | List sandboxes (paginated when **Return All** is checked). |\n| | Delete | Permanently delete a sandbox. |\n| | Start | Start a stopped sandbox. Optional poll-until-`started`. |\n| | Stop | Stop a running sandbox. Optional poll-until-`stopped`. |\n| | Get Preview URL | Generate a public URL for a port exposed inside a sandbox. **Signed** (default, browser-friendly, token in URL) or **Standard** (token returned separately, sent via `x-daytona-preview-token` header). |\n| **Code** | Run Code | Execute Python, JavaScript, or TypeScript inside a sandbox. With **Use Ephemeral Sandbox** checked (default), creates a temporary sandbox just for this execution and auto-deletes afterward. |\n| | Run Command | Execute a shell command inside a sandbox. Same ephemeral-or-existing modes as Run Code. Supports working directory and environment variables. |\n| **File** | Upload | Upload an n8n binary field to a sandbox path. Multipart with content-type preservation. |\n| | Download | Read a file from a sandbox path and emit it as binary output for downstream nodes. |\n| | List | List entries in a directory. Returns structured metadata (name, isDir, size, mode, modTime, owner, group, permissions) plus a `count` summary. |\n| | Create Folder | Create a directory with Unix-style octal permissions (e.g. `0755`). |\n| | Move | Move or rename a file/directory. Atomic — handles both renames and cross-directory moves. |\n| | Delete | Delete a file or directory. Set **Recursive** to remove non-empty folders. |\n| **Git** | Clone | Clone a Git repository into a sandbox path. Supports branch, commit ID pinning, and HTTPS basic auth for private repositories. |\n| | Status | Return working tree status: current branch, ahead/behind counts vs the tracked remote, and per-file staging/worktree changes. |\n| | Add | Stage one or more files for the next commit. |\n| | Commit | Commit staged changes with required author/email/message. Optional **Allow Empty Commit** for re-triggering CI when nothing changed. |\n| | Push | Push local commits to the remote. Optional HTTPS basic auth for private remotes. |\n| | Pull | Fetch and merge updates from the remote tracking branch. Optional HTTPS basic auth for private remotes. |\n| | Checkout | Check out a branch (existing local or remote-tracking) or a specific commit SHA. |\n| **Snapshot** | Create | Create a snapshot from a Docker image with optional resource specs (CPU/memory/disk) and entrypoint. |\n| | Get | Fetch a single snapshot by ID or name. |\n| | Get Many | List snapshots with optional name filter, sort (by `createdAt`, `lastUsedAt`, `name`, `state`), and order. |\n| | Delete | Permanently delete a snapshot. |\n| | Activate | Mark a snapshot as active so it becomes usable for sandbox creation. |\n| | Deactivate | Mark a snapshot as inactive. |\n| **Volume** | Create | Create a persistent volume that can be mounted into sandboxes. |\n| | Get | Fetch a single volume by ID. |\n| | Get Many | List volumes; optionally include soft-deleted ones. |\n| | Delete | Delete a volume. |\n\n### Operation behavior notes\n\n- **Run Code / Run Command output:** `result` contains stdout and stderr combined. `artifacts` carries any extra metadata Daytona returns (e.g. matplotlib `charts` for Python). Branch on `$json.exitCode` for success/failure — non-zero exit codes are returned as data, not thrown as errors.\n- **Ephemeral mode** creates a sandbox with `autoDeleteInterval: 0` so it auto-deletes as soon as it stops. Cleanup also runs in a `try/finally` so the sandbox is deleted even if the operation throws.\n- **Preview URL Signed flavor** embeds the auth token directly in the URL — no need for downstream nodes to add headers. The Standard flavor returns `{ url, token }` separately for callers that prefer header-based auth.\n- **Toolbox URL caching** — Daytona returns a per-sandbox `toolboxProxyUrl` from `GET /sandbox/{id}` that all toolbox operations (code/command/file/git) use to route requests. Within a single node execution this URL is fetched once per sandbox and reused for subsequent toolbox operations. The cache is invalidated on Start, Stop, and Delete so that subsequent calls re-fetch the URL and reflect any state change.\n\n### Snapshot picker on Sandbox.Create\n\nThe **Snapshot** field on `Sandbox.Create` is a dropdown populated dynamically from your Daytona organization. Pick from the list, leave at *(Use Daytona Default)*, or switch to expression mode to pass a dynamic value.\n\n### AI Agent integration\n\nThis node is marked `usableAsTool: true` and appears in n8n's AI Agent tool picker. Each operation's `description` and `action` strings are exposed to the agent's LLM as tool metadata.\n\n## Examples\n\nThree importable example workflows live in [`docs/examples/`](./docs/examples):\n\n1. [**`run-python-ephemeral.json`**](./docs/examples/run-python-ephemeral.json) — AI agent runs ad-hoc Python in a one-shot ephemeral sandbox. The simplest possible code-execution workflow.\n2. [**`clone-build-download.json`**](./docs/examples/clone-build-download.json) — Persistent sandbox: clone a Git repo, run a build command, download the build artifact back to n8n as binary. Good template for CI-style flows.\n3. [**`web-app-with-preview.json`**](./docs/examples/web-app-with-preview.json) — Spin up a long-lived sandbox, upload a server script, run it on port 3000, return a signed preview URL. Demonstrates web-service exposure for sharing demos.\n\nTo use them: in n8n, click **Workflows → Import from File** and select the JSON. You'll need to configure the Daytona credential after import.\n\n## Compatibility\n\n- **n8n version:** 1.x and later. Tested against the latest stable n8n at the time of release.\n- **Node.js:** 20.x and later (matches n8n's runtime requirements).\n- **Daytona API:** v1 (current stable as of 2026-05). Self-hosted Daytona instances supported via the **Base URL** credential field.\n\n## Development\n\n```bash\ngit clone https://github.com/daytona/integrations.git\ncd integrations/packages/n8n-nodes-daytona\nnpm install\nnpm run dev          # boots n8n on http://localhost:5678 with hot reload\n```\n\nThe dev server symlinks the node into `~/.n8n-node-cli/.n8n/custom/`. First run downloads n8n and takes 1–2 minutes; subsequent runs are fast.\n\n### Tests\n\n```bash\nDAYTONA_API_KEY=… npm test\n```\n\nOr set values in `.env.local` (gitignored). Set `DAYTONA_TEST_INCLUDE_EPHEMERAL=1` to also run ephemeral-mode tests (creates extra real sandboxes).\n\nThe integration suite covers the core operations across all six resources end-to-end against the real Daytona API in ~20–30 seconds.\n\n### Lint + build\n\n```bash\nnpm run lint\nnpm run build\n```\n\nThe lint config is locked by `n8n.strict: true` for n8n Cloud compatibility — don't modify `eslint.config.mjs`.\n\n## Resources\n\n- [Daytona documentation](https://www.daytona.io/docs)\n- [Daytona API reference](https://www.daytona.io/docs/en/tools/api)\n- [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)\n- [n8n verified community node submission](https://creators.n8n.io/nodes)\n- [Source code](https://github.com/daytona/integrations/tree/main/packages/n8n-nodes-daytona)\n- [Issues](https://github.com/daytona/integrations/issues)\n\n## License\n\n[MIT](./LICENSE) © Daytona Platforms Inc.\n","readmeFilename":"README.md"}