{"_id":"@c3-oss/doppel-core","_rev":"2-b9bc57637a4eb4a46bef9789c15970b1","name":"@c3-oss/doppel-core","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@c3-oss/doppel-core","version":"0.1.0","author":{"name":"Caian Ertl","email":"hi@caian.org"},"license":"MIT","_id":"@c3-oss/doppel-core@0.1.0","maintainers":[{"name":"caian","email":"hi@caian.org"}],"homepage":"https://github.com/c3-oss/doppel#readme","bugs":{"url":"https://github.com/c3-oss/doppel/issues"},"dist":{"shasum":"c255321eaae66f8c8fc6a4f625462f1e1fb76246","tarball":"https://registry.npmjs.org/@c3-oss/doppel-core/-/doppel-core-0.1.0.tgz","fileCount":4,"integrity":"sha512-2jU8EPHg4viQx+OlIQMdbN4h4PmyhnsAEzX8YeCJ41PldumJRIfCr3MXZ+fSh7muauxtHF/CTJPwN42EhJtLiQ==","signatures":[{"sig":"MEUCIQC1QC+0o4xJhq+vxDUIgLw/OxBAXGXDcmFdRMOY83acgQIgSoUrZw2bnaJzshopkQLon/yX+8DqbGwkoHTvRUsQfE4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76559},"main":"./dist/index.js","type":"module","_from":"file:c3-oss-doppel-core-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome check .","test":"vitest run","build":"tsup","clean":"rm -rf dist coverage .turbo","lint:fix":"biome check --fix .","typecheck":"tsc --noEmit","test:coverage":"vitest run --coverage"},"_npmUser":{"name":"caian","email":"hi@caian.org"},"_resolved":"/private/var/folders/70/zg4bz5kn71xb0tk82j0vj7rh0000gn/T/699b2dd1081271daca1ce8eebd20c41a/c3-oss-doppel-core-0.1.0.tgz","_integrity":"sha512-2jU8EPHg4viQx+OlIQMdbN4h4PmyhnsAEzX8YeCJ41PldumJRIfCr3MXZ+fSh7muauxtHF/CTJPwN42EhJtLiQ==","repository":{"url":"git+https://github.com/c3-oss/doppel.git","type":"git","directory":"packages/doppel-core"},"_npmVersion":"10.9.7","description":"Doppel core engine: terminal sessions, schedules, and persistence.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.25.76","node-pty":"1.2.0-beta.12","node-cron":"^4.2.1","better-sqlite3":"^12.10.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@c3-oss/config-tsup":"^0.2.0","@c3-oss/config-biome":"^0.3.1","@c3-oss/config-vitest":"^0.3.0","@types/better-sqlite3":"^7.6.13","@c3-oss/config-typescript":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/doppel-core_0.1.0_1778698636187_0.8326174511615867","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@c3-oss/doppel-core","version":"0.1.1","description":"Doppel core engine: terminal sessions, schedules, and persistence.","author":{"name":"Caian Ertl","email":"hi@caian.org"},"license":"MIT","type":"module","homepage":"https://github.com/c3-oss/doppel#readme","bugs":{"url":"https://github.com/c3-oss/doppel/issues"},"repository":{"type":"git","url":"git+https://github.com/c3-oss/doppel.git","directory":"packages/doppel-core"},"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"dependencies":{"better-sqlite3":"^12.10.0","node-cron":"^4.2.1","node-pty":"1.2.0-beta.12","zod":"^3.25.76"},"devDependencies":{"@c3-oss/config-biome":"^0.3.1","@c3-oss/config-tsup":"^0.2.0","@c3-oss/config-typescript":"^0.1.0","@c3-oss/config-vitest":"^0.3.0","@types/better-sqlite3":"^7.6.13"},"scripts":{"build":"tsup","typecheck":"tsc --noEmit","test":"vitest run","test:coverage":"vitest run --coverage","lint":"biome check .","lint:fix":"biome check --fix .","clean":"rm -rf dist coverage .turbo"},"_id":"@c3-oss/doppel-core@0.1.1","_integrity":"sha512-mfn36Too1fHL4dMF8znzGfuFNr4GyTWqelAebyKyVT4xxFaIT4aq/enbObJ49gK3N2PsCz0W1dUOX3ZKUB5a2A==","_resolved":"/private/var/folders/70/zg4bz5kn71xb0tk82j0vj7rh0000gn/T/033bdf95c279db72c326e25e22fc2b15/c3-oss-doppel-core-0.1.1.tgz","_from":"file:c3-oss-doppel-core-0.1.1.tgz","_nodeVersion":"22.22.2","_npmVersion":"10.9.7","dist":{"integrity":"sha512-mfn36Too1fHL4dMF8znzGfuFNr4GyTWqelAebyKyVT4xxFaIT4aq/enbObJ49gK3N2PsCz0W1dUOX3ZKUB5a2A==","shasum":"e456c15160a3385aea260d2356539897c4333bd0","tarball":"https://registry.npmjs.org/@c3-oss/doppel-core/-/doppel-core-0.1.1.tgz","fileCount":5,"unpackedSize":78280,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEtMQqd0FE76BYGdZ/v/+bwkDV5ZN7rfVvlox3vIKQGpAiEAqoSdtxReBUp12BoW6qTuNvKyUI0nmv32fnR3x7Kh5Vc="}]},"_npmUser":{"name":"caian","email":"hi@caian.org"},"directories":{},"maintainers":[{"name":"caian","email":"hi@caian.org"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/doppel-core_0.1.1_1778704406910_0.7309106522220477"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-13T18:57:16.100Z","modified":"2026-05-13T20:33:27.179Z","0.1.0":"2026-05-13T18:57:16.344Z","0.1.1":"2026-05-13T20:33:27.045Z"},"bugs":{"url":"https://github.com/c3-oss/doppel/issues"},"author":{"name":"Caian Ertl","email":"hi@caian.org"},"license":"MIT","homepage":"https://github.com/c3-oss/doppel#readme","repository":{"type":"git","url":"git+https://github.com/c3-oss/doppel.git","directory":"packages/doppel-core"},"description":"Doppel core engine: terminal sessions, schedules, and persistence.","maintainers":[{"name":"caian","email":"hi@caian.org"}],"readme":"# @c3-oss/doppel-core - Embeddable terminal and schedule engine\n\n`@c3-oss/doppel-core` is the transport-agnostic engine behind Doppel. It manages\nnamed PTY sessions, ephemeral command runs, cron-backed schedules, and local\npersistence without starting the published daemon server.\n\nUse it when your application wants Doppel's terminal automation model as a\nlibrary.\n\n## Install\n\n```bash\nnpm install @c3-oss/doppel-core\n```\n\nRequires Node.js 22+.\n\n## Quickstart\n\n```ts\nimport { createDoppel } from '@c3-oss/doppel-core';\n\nconst doppel = createDoppel();\n\nconst session = doppel.terminal.ensure({ name: 'dev' });\ndoppel.terminal.send(session.name, 'pnpm test\\n');\n\nconst result = await doppel.terminal.runEphemeral('printf doppel');\nconsole.log(result.output);\n\ndoppel.close();\n```\n\n## API shape\n\n```ts\nconst doppel = createDoppel({\n  dataDir: './.doppel',\n});\n\ndoppel.terminal.ensure({ name: 'dev' });\ndoppel.terminal.send('dev', 'echo hi\\n');\nawait doppel.terminal.runEphemeral('echo once');\n\ndoppel.schedules.create({\n  name: 'daily-health',\n  cron: '0 9 * * *',\n  command: 'pnpm test',\n  enabled: true,\n});\n\ndoppel.close();\n```\n\nThe engine exposes:\n\n- `terminal` for named PTY sessions, input, output history, and ephemeral runs.\n- `schedules` for cron-backed scheduled commands.\n- `close()` for shutting down terminal and persistence resources.\n\n## Related packages\n\n- `@c3-oss/doppel-server` wraps this engine with Fastify, tRPC, WebSocket, and\n  daemon commands.\n- `@c3-oss/doppel` is the CLI client for a running Doppel server.\n\n## Links\n\n- Repository: https://github.com/c3-oss/doppel\n- CLI package: https://www.npmjs.com/package/@c3-oss/doppel\n- Server package: https://www.npmjs.com/package/@c3-oss/doppel-server\n","readmeFilename":"README.md"}