{"_id":"@bentonow/bento-skills","_rev":"3-8821ea50a0f4ddf4ef505cfe9f8842d2","name":"@bentonow/bento-skills","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@bentonow/bento-skills","version":"0.1.0","keywords":["ai","agents","bento","cursor","email","marketing","skills"],"author":{"name":"Bento","email":"support@bentonow.com"},"license":"MIT","_id":"@bentonow/bento-skills@0.1.0","maintainers":[{"name":"bentonow","email":"jesse@bentonow.com"}],"homepage":"https://bentonow.com","bugs":{"url":"https://github.com/bentonow/bento-skills/issues"},"dist":{"shasum":"7dafa8f60df296eef48da6474f98da4e0460dc06","tarball":"https://registry.npmjs.org/@bentonow/bento-skills/-/bento-skills-0.1.0.tgz","fileCount":19,"integrity":"sha512-Tr0Pqho43MEh40RV9ah+0czvlRE9PMvpwFTkyCbRgH1naEqmRnp2AK6Dqs0BDXRAx1lPBWFF4p63SE6Q4jTwkg==","signatures":[{"sig":"MEYCIQC+Hlr2AHn3wp4UMpxFkyIwwsV0qAAPF9TuuMp+NFnnAQIhAOWaFDqFET3WG8RlKi0TlKTQ86A2213L7epRNIru2C1P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66758},"type":"module","engines":{"node":">=18"},"gitHead":"c040891870ea8a9da97b4b4f7e0c68469b2178fc","scripts":{"bento":"node skills/bento/scripts/bento-sdk.mjs","validate":"node scripts/validate.mjs"},"_npmUser":{"name":"bentonow","email":"jesse@bentonow.com"},"repository":{"url":"git+https://github.com/bentonow/bento-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Customer-facing AI agent skills for safe, framework-native Bento integrations.","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"npm@11.10.0","_npmOperationalInternal":{"tmp":"tmp/bento-skills_0.1.0_1781302987837_0.3927217464760264","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bentonow/bento-skills","version":"0.1.1","keywords":["ai","agents","bento","cursor","email","marketing","skills"],"author":{"name":"Bento","email":"support@bentonow.com"},"license":"MIT","_id":"@bentonow/bento-skills@0.1.1","maintainers":[{"name":"bentonow","email":"jesse@bentonow.com"}],"homepage":"https://bentonow.com","bugs":{"url":"https://github.com/bentonow/bento-skills/issues"},"dist":{"shasum":"0154b713a1350f63ac7de98245b9143225b39e6f","tarball":"https://registry.npmjs.org/@bentonow/bento-skills/-/bento-skills-0.1.1.tgz","fileCount":19,"integrity":"sha512-cOGzPGcKokAirRns9/ECF8RFWTKrbhzygcFvG/ytPX+/y0FvFE3qZ4et3v5TbPLC+B4YBryk5ACIbr9Q+HXEgg==","signatures":[{"sig":"MEQCIBV1+PtOPALFQliPzcsW35l1dfA55RE43l1s3VCQ0YYvAiADizRqKUtXnlHD/5+/tzZLPgxX/t9eRMeBsXmrwnKGAA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67482},"type":"module","engines":{"node":">=18"},"gitHead":"966e9852e7cbcb276a0016238f12b7df43816cd1","scripts":{"bento":"node skills/bento/scripts/bento-sdk.mjs","validate":"node scripts/validate.mjs"},"_npmUser":{"name":"bentonow","email":"jesse@bentonow.com"},"repository":{"url":"git+https://github.com/bentonow/bento-skills.git","type":"git"},"_npmVersion":"10.8.2","description":"Customer-facing AI agent skills for safe, framework-native Bento integrations.","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"packageManager":"npm@11.10.0","_npmOperationalInternal":{"tmp":"tmp/bento-skills_0.1.1_1781303321817_0.5309952082964045","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@bentonow/bento-skills","version":"0.1.2","description":"Customer-facing AI agent skills for safe, framework-native Bento integrations.","type":"module","license":"MIT","author":{"name":"Bento","email":"support@bentonow.com"},"homepage":"https://bentonow.com","repository":{"type":"git","url":"git+https://github.com/bentonow/bento-skills.git"},"bugs":{"url":"https://github.com/bentonow/bento-skills/issues"},"keywords":["ai","agents","bento","cursor","email","marketing","skills"],"engines":{"node":">=18"},"packageManager":"npm@11.10.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"validate":"node scripts/validate.mjs","bento":"node skills/bento/scripts/bento-sdk.mjs"},"_id":"@bentonow/bento-skills@0.1.2","gitHead":"e11655e8304a3fcde93301814316b9938cce120b","_nodeVersion":"20.19.6","_npmVersion":"10.8.2","dist":{"integrity":"sha512-RkEqKWTxZeKLBLcMz5eZT0krsgWmaWXc/gsVfR3n5cJosHnT689/s/rE7b/g1WQPER6ch25ox1st5TnQzklqzQ==","shasum":"edd1d7934c77c2cbf862a1c33216af4ec1bbd75a","tarball":"https://registry.npmjs.org/@bentonow/bento-skills/-/bento-skills-0.1.2.tgz","fileCount":19,"unpackedSize":74892,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD8Khcq10ZySRB3g8MgTL+uRrd4CHOH6Orx4fv6vEJtRwIhAJpyADswYHcxPfWiOGGWv54C9bmVzCVQTCPI5owASkvJ"}]},"_npmUser":{"name":"bentonow","email":"jesse@bentonow.com"},"directories":{},"maintainers":[{"name":"bentonow","email":"jesse@bentonow.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/bento-skills_0.1.2_1783551242722_0.11758442703621297"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-12T22:23:07.646Z","modified":"2026-07-08T22:54:02.959Z","0.1.0":"2026-06-12T22:23:08.022Z","0.1.1":"2026-06-12T22:28:41.961Z","0.1.2":"2026-07-08T22:54:02.865Z"},"bugs":{"url":"https://github.com/bentonow/bento-skills/issues"},"author":{"name":"Bento","email":"support@bentonow.com"},"license":"MIT","homepage":"https://bentonow.com","keywords":["ai","agents","bento","cursor","email","marketing","skills"],"repository":{"type":"git","url":"git+https://github.com/bentonow/bento-skills.git"},"description":"Customer-facing AI agent skills for safe, framework-native Bento integrations.","maintainers":[{"name":"bentonow","email":"jesse@bentonow.com"}],"readme":"# Bento Skills\n\n<img align=\"right\" src=\"https://app.bentonow.com/brand/logoanim.gif\">\n\n> [!TIP]\n> Need help? Join our [Discord](https://discord.gg/ssXXFRmt5F) or email support@bentonow.com.\n\nBento Skills helps AI agents work with Bento accounts and Bento integrations without guessing API shapes. Install one `bento` skill, then ask your agent to inspect a project, choose the right Bento tool, and use safe account-operation patterns.\n\nUse it when you want an agent to:\n\n* Add Bento to an application with an official SDK.\n* Build or review subscriber syncs, event tracking, transactional email, broadcasts, validation, and reporting code.\n* Choose between the Bento CLI, Bento MCP, an SDK, or the n8n node.\n* Keep API credentials out of source code and avoid unsafe bulk operations.\n\nThis is the official Bento-maintained skill package. Install it from [`@bentonow/bento-skills`](https://www.npmjs.com/package/@bentonow/bento-skills) or [github.com/bentonow/bento-skills](https://github.com/bentonow/bento-skills), and use [GitHub Issues](https://github.com/bentonow/bento-skills/issues) or support@bentonow.com for support. Bento's privacy policy is at [bentonow.com/legal/privacy](https://bentonow.com/legal/privacy).\n\nGet the product docs at [docs.bentonow.com](https://docs.bentonow.com). For the maintained agent onboarding guide, use [bentonow.com/agent_onboarding.md](https://bentonow.com/agent_onboarding.md).\n\n## Install\n\nInstall the skill package from npm with the `skills` CLI:\n\n```bash\nnpx skills add @bentonow/bento-skills\n```\n\nYou can also install from GitHub:\n\n```bash\nnpx skills add https://github.com/bentonow/bento-skills\n```\n\nInstalling this package adds agent guidance files to your supported AI tool. It does not call the Bento API, read your Bento account, or require Bento credentials during install.\n\nInstall only the `bento` skill globally and skip prompts:\n\n```bash\nnpx skills add @bentonow/bento-skills --skill bento -g -y\n```\n\nInstall for specific agents when needed:\n\n```bash\nnpx skills add @bentonow/bento-skills -a claude-code -a codex -a opencode -a amp\n```\n\n## First Safe Prompts\n\nStart with read-only or planning requests before asking an agent to change customer data:\n\n```text\nUse the Bento skill to inspect this project and tell me which Bento SDK or tool fits best.\n```\n\n```text\nUse the Bento skill to review this subscriber import for batching, credentials, and dry-run safety.\n```\n\n```text\nUse the Bento skill to plan a safe customer sync from this app to Bento. Do not write code yet.\n```\n\nWhen you are ready to make changes, ask for explicit previews and verification:\n\n```text\nUse the Bento skill to add a queued Laravel subscriber sync. Use bulk import, keep credentials in env, and add tests for payload shape and retries.\n```\n\n```text\nUse the Bento skill to create a CLI import workflow. Run a dry run with a small limit before any confirmed import.\n```\n\n## Credentials And Safety\n\nBento integrations usually need:\n\n* `BENTO_SITE_UUID`\n* `BENTO_PUBLISHABLE_KEY`\n* `BENTO_SECRET_KEY`\n\nFind API keys in the Bento dashboard under account/team API settings. Different SDKs may name these logical credentials differently, such as `username` and `password` in some clients; follow the selected reference file.\n\nKeep credentials in environment variables, framework secret storage, the Bento CLI profile store, n8n credentials, or MCP client configuration. Do not paste real secret keys into source code, tests, markdown examples, or chat messages you plan to share. The publishable key can appear in approved client-side tracking paths, but the secret key must stay server-side and out of git, logs, shared agent configs, and browser bundles.\n\nFor customer data operations:\n\n* Preview bulk imports with `--dry-run`, `--limit`, or an app-level preview before running them against a real account.\n* Confirm destructive or high-volume changes before execution, including unsubscribes, tag removals, email sends, and large subscriber imports.\n* Use events for behavior that should trigger automations. Use command/tag/field/subscription APIs for profile state changes.\n* Prefer SDK batch APIs, the Bento CLI import command, or n8n batching over one API call per subscriber.\n* Keep secret-key operations server-side.\n\n## Which Bento Tool To Use\n\nThe parent skill routes agents to one focused reference at a time so normal tasks do not load every SDK into context.\n\n| Tool | Use When | Reference |\n| --- | --- | --- |\n| Bento MCP | A supported AI assistant needs to inspect or operate on a live Bento account from chat, using hosted remote MCP at `https://mcp.bentonow.com/mcp` or local `@bentonow/bento-mcp`. | `skills/bento/references/mcp.md` |\n| Bento CLI | You need terminal automation, CSV imports, profiles, JSON output, or CI jobs. | `skills/bento/references/cli.md` |\n| Node SDK | You are building server-side JavaScript, TypeScript, or Bun code. | `skills/bento/references/node.md` |\n| Laravel SDK | You are building a Laravel app with Facades, DTOs, queues, config, and mail transport. | `skills/bento/references/laravel.md` |\n| PHP SDK | You are building plain PHP or non-Laravel Composer code. | `skills/bento/references/php.md` |\n| Drupal SDK | You are building a Drupal 10 module or using Webform, Commerce, cron, queues, or Drupal mail. | `skills/bento/references/drupal.md` |\n| Go SDK | You are building Go services with context-aware clients. | `skills/bento/references/go.md` |\n| .NET SDK | You are building ASP.NET Core or .NET services with DI and typed services. | `skills/bento/references/dotnet.md` |\n| Elixir SDK | You are building Elixir or Phoenix apps with supervised workers. | `skills/bento/references/elixir.md` |\n| Python SDK | You are building Python services, scripts, or jobs. | `skills/bento/references/python.md` |\n| Ruby SDK | You are building Ruby or Rails apps with background jobs. | `skills/bento/references/ruby.md` |\n| n8n node | You are building no-code or low-code workflows. | `skills/bento/references/n8n.md` |\n\n## Helper Script\n\nThe bundled helper is read-only. It prints guidance for agents and contributors; it does not install packages or change your project.\n\n```bash\nnode skills/bento/scripts/bento-sdk.mjs list\nnode skills/bento/scripts/bento-sdk.mjs detect .\nnode skills/bento/scripts/bento-sdk.mjs install node\nnode skills/bento/scripts/bento-sdk.mjs doctor .\n```\n\n`doctor` identifies likely SDKs, credentials, setup commands, and verification commands for the current project.\n\n## Examples\n\n### Safe CLI subscriber import\n\n```bash\nbento subscribers import contacts.csv --dry-run --limit 10\nbento subscribers import contacts.csv --confirm --json\n```\n\n### Node server-side subscriber import\n\n```ts\nimport { Analytics } from '@bentonow/bento-node-sdk';\n\nconst bento = new Analytics({\n  authentication: {\n    publishableKey: process.env.BENTO_PUBLISHABLE_KEY!,\n    secretKey: process.env.BENTO_SECRET_KEY!,\n  },\n  siteUuid: process.env.BENTO_SITE_UUID!,\n});\n\nawait bento.V1.Batch.importSubscribers({\n  subscribers: [{ email: 'jane@example.com', firstName: 'Jane', tags: 'customer' }],\n});\n```\n\n### Laravel queued sync shape\n\n```php\nuse Bentonow\\BentoLaravel\\Facades\\Bento;\nuse Bentonow\\BentoLaravel\\DataTransferObjects\\ImportSubscribersData;\n\nreturn Bento::importSubscribers(collect([\n    new ImportSubscribersData(\n        email: 'jane@example.com',\n        first_name: 'Jane',\n        tags: ['customer'],\n        fields: ['plan' => 'pro'],\n    ),\n]))->json();\n```\n\n## Local Validation\n\nRun the local validator and then exercise the skills install path:\n\n```bash\nnpm run validate\nnpx -y skills add . --list\n```\n\n## Contributing\n\nKeep `skills/bento/SKILL.md` small and route SDK-specific detail into `skills/bento/references/<sdk>.md`. Customer-facing examples must use real commands or method names from the current Bento CLI, MCP server, n8n node, or official SDKs.\n\nWhen changing CLI guidance, check the shipped CLI skill in `../bento-cli/skill/` and the command implementations in `../bento-cli/src/commands/`. The CLI repo owns the deep command reference; this repo owns customer-facing routing across Bento's AI surfaces.\n\n## License\n\nMIT. See `LICENSE`.\n","readmeFilename":"README.md"}