{"_id":"clippyjs","_rev":"5-60c5cb52c30e13343753d61829f81577","name":"clippyjs","dist-tags":{"latest":"0.1.0"},"versions":{"0.0.1":{"name":"clippyjs","version":"0.0.1","license":"MIT","_id":"clippyjs@0.0.1","maintainers":[{"name":"pi0","email":"pooya@pi0.ir"}],"homepage":"https://github.com/pi0/clippyjs#readme","bugs":{"url":"https://github.com/pi0/clippyjs/issues"},"web":"dist/clippyjs.js","dist":{"shasum":"6971d2f4cbdc2165d483f5b6229259f66863dda0","tarball":"https://registry.npmjs.org/clippyjs/-/clippyjs-0.0.1.tgz","integrity":"sha512-AuJXHKX0MPUFhb3kuEyUh2qRFLKFncAqeQLsvZNb9o4OeqLe1XmB+aE+fbGKHlMNs8F4+gD/OwQnPcoYK10mbQ==","signatures":[{"sig":"MEQCIH9l65uyUrqP24tlXUkZWU+0K+wgL0yglzrsYfQUMNdGAiA2hOA9yfOEZe7voVtsE8OXTndaoDAq49rakaQqSg6KrQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/clippyjs.js","module":"dist/clippyjs.esm.js","gitHead":"ab9474107c27568b5f31370a561ea1ba50776e70","scripts":{"build":"rollup -c","watch":"rollup -c -w"},"_npmUser":{"name":"pi0","email":"pooya@pi0.ir"},"repository":{"url":"git+https://github.com/pi0/clippy.js.git","type":"git"},"_npmVersion":"5.0.0","description":"Add Clippy or his friends to any website for instant nostalgia.","jsnext:main":"dist/clippyjs.esm.js","_nodeVersion":"8.0.0","dependencies":{"jquery":"^3.2.1"},"devDependencies":{"rollup":"^0.42.0","rollup-watch":"^4.0.0","uglify-js-harmony":"^2.7.7","rollup-plugin-buble":"^0.15.0","rollup-plugin-uglify":"^2.0.1","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/clippyjs-0.0.1.tgz_1497092658302_0.5894000246189535","host":"s3://npm-registry-packages"},"directories":{}},"0.0.2":{"name":"clippyjs","version":"0.0.2","license":"MIT","_id":"clippyjs@0.0.2","maintainers":[{"name":"pi0","email":"pooya@pi0.ir"}],"homepage":"https://github.com/pi0/clippyjs#readme","bugs":{"url":"https://github.com/pi0/clippyjs/issues"},"web":"dist/clippy.js","dist":{"shasum":"afabb43d4c94142810b6e4553542fec5106134c7","tarball":"https://registry.npmjs.org/clippyjs/-/clippyjs-0.0.2.tgz","integrity":"sha512-A4YUm3bQj7ktMH7L53dTPSxM43jmCwe5CrUWIA3c1i6/AhxgBK9ZtgtxP6bneRYbJD7kaNqE4t2PybTzIYrY1g==","signatures":[{"sig":"MEQCIFAPMSvAaQ6P3w6yHXViosrYwf/bL5Gc6FTLYEOdsNKEAiBndtMGunwgbwNjH+PKhfj2LZB/Tyel5r3Us37KrAvE2A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/clippy.js","module":"dist/clippy.esm.js","gitHead":"ab9474107c27568b5f31370a561ea1ba50776e70","scripts":{"build":"rollup -c","watch":"rollup -c -w"},"_npmUser":{"name":"pi0","email":"pooya@pi0.ir"},"repository":{"url":"git+https://github.com/pi0/clippyjs.git","type":"git"},"_npmVersion":"5.0.0","description":"Add Clippy or his friends to any website for instant nostalgia.","jsnext:main":"dist/clippy.esm.js","_nodeVersion":"8.0.0","dependencies":{"jquery":"^3.2.1"},"devDependencies":{"rollup":"^0.42.0","rollup-watch":"^4.0.0","uglify-js-harmony":"^2.7.7","rollup-plugin-buble":"^0.15.0","rollup-plugin-uglify":"^2.0.1","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/clippyjs-0.0.2.tgz_1497092760178_0.2725484664551914","host":"s3://npm-registry-packages"},"directories":{}},"0.0.3":{"name":"clippyjs","version":"0.0.3","license":"MIT","_id":"clippyjs@0.0.3","maintainers":[{"name":"pi0","email":"pooya@pi0.ir"}],"homepage":"https://github.com/pi0/clippyjs#readme","bugs":{"url":"https://github.com/pi0/clippyjs/issues"},"web":"dist/clippy.js","dist":{"shasum":"34c45e3416b74d3773aeb37296c618a0b658fbbb","tarball":"https://registry.npmjs.org/clippyjs/-/clippyjs-0.0.3.tgz","integrity":"sha512-i4sPaKbCA6PfXiwxNK35E1io6AXN7VGwEGZR9sE8RqOgXPNtRWKbFubmx87JwSuwIrdClO/rkTMjhl2ZyOHjug==","signatures":[{"sig":"MEUCIQDTZXosqTiKgYDXEh674t0h8ooV3wq7cD8miArx/npzFAIgNbVNd+CiqkkkfUZQadSjKeLx7EDYtHr2MrieBDM6QSs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"dist/clippy.js","module":"dist/clippy.esm.js","gitHead":"64a68695451696e6c1062cd9e9c7cfb230389f2c","scripts":{"build":"rollup -c","watch":"rollup -c -w","prepublish":"npm run build"},"_npmUser":{"name":"pi0","email":"pooya@pi0.ir"},"repository":{"url":"git+https://github.com/pi0/clippyjs.git","type":"git"},"_npmVersion":"5.0.0","description":"Add Clippy or his friends to any website for instant nostalgia.","jsnext:main":"dist/clippy.esm.js","_nodeVersion":"8.0.0","dependencies":{"jquery":"^3.2.1"},"devDependencies":{"rollup":"^0.42.0","rollup-watch":"^4.0.0","uglify-js-harmony":"^2.7.7","rollup-plugin-buble":"^0.15.0","rollup-plugin-uglify":"^2.0.1","rollup-plugin-commonjs":"^8.0.2","rollup-plugin-node-resolve":"^3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/clippyjs-0.0.3.tgz_1497094859808_0.8869800630491227","host":"s3://npm-registry-packages"},"directories":{}},"0.1.0":{"name":"clippyjs","version":"0.1.0","description":"Add Clippy or his friends to any website for instant nostalgia.","license":"MIT","repository":{"type":"git","url":"git+https://github.com/pi0/clippyjs.git"},"type":"module","sideEffects":false,"types":"./dist/index.d.mts","exports":{".":"./dist/index.mjs","./agents":"./dist/agents/index.mjs","./agents/bonzi":"./dist/agents/bonzi/index.mjs","./agents/clippy":"./dist/agents/clippy/index.mjs","./agents/f1":"./dist/agents/f1/index.mjs","./agents/genie":"./dist/agents/genie/index.mjs","./agents/genius":"./dist/agents/genius/index.mjs","./agents/links":"./dist/agents/links/index.mjs","./agents/merlin":"./dist/agents/merlin/index.mjs","./agents/peedy":"./dist/agents/peedy/index.mjs","./agents/rocky":"./dist/agents/rocky/index.mjs","./agents/rover":"./dist/agents/rover/index.mjs"},"scripts":{"build":"obuild","dev":"vite dev","fmt":"automd && oxlint . --fix && oxfmt .","lint":"oxlint . && oxfmt --check .","prepack":"pnpm build","release":"pnpm test && pnpm build && changelogen --release && npm publish && git push --follow-tags","test":"pnpm lint && pnpm typecheck","typecheck":"tsgo --noEmit --skipLibCheck"},"devDependencies":{"@types/node":"latest","@typescript/native-preview":"latest","@vitest/coverage-v8":"latest","automd":"latest","changelogen":"latest","obuild":"latest","oxfmt":"latest","oxlint":"latest","typescript":"^5.9.3","vite":"^7.3.1","vitest":"latest"},"packageManager":"pnpm@10.29.3","gitHead":"84b798e4a56ab4674d8ac45113ad80146a70e342","_id":"clippyjs@0.1.0","bugs":{"url":"https://github.com/pi0/clippyjs/issues"},"homepage":"https://github.com/pi0/clippyjs#readme","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-XnchzSR8H8X43TvwnAktK5xDewKGSyfGu8DagBZCbOUdx0dWAFrFdxdCWlaJkyfx4M3Amvvu13jbHQ/IYQOD+w==","shasum":"7cb9d096d0414df5fcbf576b2b696f38a1a16a96","tarball":"https://registry.npmjs.org/clippyjs/-/clippyjs-0.1.0.tgz","fileCount":68,"unpackedSize":16657276,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIC/1LKXwPOdCCygvP67J5XGtUfvw998nOrryVyUKsrtKAiAmrO5bpb0GAmZOSuStnXChnGA0RvQcEHH2g7xOFoIjDQ=="}]},"_npmUser":{"name":"pi0","email":"pyapar@gmail.com"},"directories":{},"maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/clippyjs_0.1.0_1771351873195_0.9071623855419573"},"_hasShrinkwrap":false}},"time":{"created":"2017-06-10T11:04:19.438Z","modified":"2026-02-17T18:11:13.831Z","0.0.1":"2017-06-10T11:04:19.438Z","0.0.2":"2017-06-10T11:06:01.221Z","0.0.3":"2017-06-10T11:41:00.894Z","0.1.0":"2026-02-17T18:11:13.714Z"},"bugs":{"url":"https://github.com/pi0/clippyjs/issues"},"license":"MIT","homepage":"https://github.com/pi0/clippyjs#readme","repository":{"type":"git","url":"git+https://github.com/pi0/clippyjs.git"},"description":"Add Clippy or his friends to any website for instant nostalgia.","maintainers":[{"name":"pi0","email":"pyapar@gmail.com"}],"readme":"# Clippy\n\nAdd Clippy or his friends to any website for instant nostalgia!\n\n[**Online Demo**](https://clippy.pi0.io/)\n\n## Usage\n\n### CDN (no build tools)\n\nYou can use ClippyJS directly in the browser with a `<script type=\"module\">` tag and [unpkg](https://unpkg.com):\n\n```html\n<!doctype html>\n<html>\n  <body>\n    <script type=\"module\">\n      import { initAgent } from \"https://unpkg.com/clippyjs/dist/index.mjs\";\n      import * as agents from \"https://unpkg.com/clippyjs/dist/agents/index.mjs\";\n      const agent = await initAgent(agents.Clippy);\n      agent.show();\n      agent.speak(\"Hello! I'm Clippy, your virtual assistant.\");\n    </script>\n  </body>\n</html>\n```\n\n### npm package\n\nInstall and import an agent:\n\n```js\nimport { initAgent } from \"clippyjs\";\nimport { Clippy } from \"clippyjs/agents\";\n\n// Load and show the agent\nconst agent = await initAgent(Clippy);\nagent.show();\n```\n\n### Available agents\n\nYou can import agents individually or all at once:\n\n```js\n// Import all agents\nimport * as agents from \"clippyjs/agents\";\n\n// Or import individually\nimport { Clippy } from \"clippyjs/agents\";\n// Also available: Bonzi, F1, Genie, Genius, Links, Merlin, Peedy, Rocky, Rover\n```\n\nEach agent can also be imported from its own subpath:\n\n```js\nimport Merlin from \"clippyjs/agents/merlin\";\n```\n\n## API\n\nAll agent actions are queued and executed sequentially, so you can chain them.\n\n```js\n// Play a specific animation\nagent.play(\"Searching\");\n\n// Play a random animation\nagent.animate();\n\n// List all available animations\nagent.animations();\n// => [\"MoveLeft\", \"Congratulate\", \"Hide\", \"Pleased\", \"Acknowledge\", ...]\n\n// Show a speech balloon\nagent.speak(\"When all else fails, bind some paper together. My name is Clippy.\");\n\n// Move to a given point, using animation if available\nagent.moveTo(100, 100);\n\n// Gesture at a given point (if a gesture animation is available)\nagent.gestureAt(200, 200);\n\n// Stop the current action in the queue\nagent.stopCurrent();\n\n// Stop all actions and return to idle\nagent.stop();\n\n// Hide the agent\nagent.hide();\n\n// Pause and resume animations\nagent.pause();\nagent.resume();\n\n// Remove the agent from the DOM\nagent.dispose();\n```\n\n# License\n\n[MIT](./LICENCE)\n\nThis project is a fresh rewrite of [Clippy.JS](http://smore.com/clippy-js).\n\n- [Clippy.JS](http://smore.com/clippy-js) by [Smore](http://smore.com)\n- [Cinnamon Software](http://www.cinnamonsoftware.com/) for developing [Double Agent](http://doubleagent.sourceforge.net/), the program used to unpack Clippy and his friends\n- Microsoft, for creating Clippy :)\n","readmeFilename":"README.md"}