{"_rev":"118-e61ee0187234330223d7b00d71681927","time":{"created":"2025-05-06T22:33:09.586Z","modified":"2025-05-06T22:33:10.005Z","0.0.1":"2013-04-19T20:50:23.820Z","0.1.0":"2013-04-20T06:28:17.757Z","0.1.1":"2013-04-20T07:00:13.974Z","0.1.2":"2013-04-20T07:06:16.690Z","0.1.3":"2013-04-20T07:08:53.050Z","0.1.4":"2013-04-20T11:54:16.499Z","0.1.5":"2013-04-20T12:01:03.993Z","0.1.6":"2013-04-20T13:16:42.166Z","0.1.7":"2013-04-21T05:35:23.457Z","0.1.8":"2013-04-21T08:12:58.486Z","0.1.9":"2013-04-21T09:49:13.888Z","0.1.10":"2013-04-21T13:56:17.840Z","0.1.11":"2013-04-21T15:38:28.867Z","0.2.0":"2013-04-21T21:22:11.068Z","0.2.1":"2013-04-22T08:20:30.947Z","0.2.2":"2013-04-22T08:33:48.616Z","0.2.3":"2013-04-22T08:41:44.239Z","0.2.4":"2013-04-22T13:17:48.634Z","0.2.5":"2013-04-22T14:49:31.423Z","0.2.6":"2013-04-22T22:47:23.726Z","0.2.7":"2013-04-23T08:06:58.124Z","0.2.8":"2013-04-23T08:19:25.899Z","0.2.9":"2013-04-23T10:35:21.465Z","0.2.10":"2013-04-24T06:51:01.127Z","0.3.0":"2013-04-24T09:25:49.482Z","0.3.1":"2013-04-26T22:34:08.472Z","0.3.2":"2013-04-27T00:30:20.100Z","0.3.3":"2013-04-27T09:05:52.916Z","0.3.4":"2013-04-28T14:12:14.932Z","0.3.6":"2013-05-07T11:39:37.012Z","0.3.7":"2013-05-07T15:40:27.460Z","0.3.8":"2013-05-08T03:45:17.927Z","0.4.0":"2013-05-11T00:52:33.107Z","0.4.1":"2013-05-12T01:38:05.844Z","0.5.0":"2013-05-21T04:08:10.032Z","0.5.1":"2013-05-21T10:47:36.260Z","0.5.2":"2013-05-21T19:10:58.250Z","0.5.3":"2013-05-21T19:50:12.626Z","0.5.4":"2013-05-21T21:59:38.651Z","0.5.5":"2013-05-22T18:00:30.811Z","0.5.6":"2013-05-23T13:39:24.874Z","0.5.7":"2013-05-23T14:03:48.033Z","0.5.8":"2013-05-24T01:37:49.092Z","0.5.9":"2013-06-17T05:16:46.923Z","0.5.10":"2013-06-20T23:59:50.232Z","0.6.0":"2013-06-24T15:13:37.314Z","0.6.1":"2013-06-24T21:59:08.330Z","0.6.2":"2013-06-25T18:53:19.380Z","0.6.3":"2013-06-25T20:28:30.479Z","0.6.4":"2013-06-28T13:27:56.353Z","0.6.5":"2013-07-05T15:46:49.043Z","0.6.6":"2013-08-10T22:19:56.395Z","0.6.7":"2013-12-15T22:31:30.839Z","0.7.0":"2014-06-07T04:32:27.163Z","0.7.1":"2014-06-07T04:35:11.901Z","0.8.0":"2014-07-21T05:47:14.739Z","0.0.2":"2025-05-06T22:33:09.763Z"},"_id":"ibot","name":"ibot","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.2":{"name":"ibot","version":"0.0.2","description":"Instant.bot Package Manager: CLI for the Instant.bot Package Registry","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"bin":{"ibot":"index.js"},"author":{"name":"Keith Horwood"},"license":"MIT","dependencies":{"cmnd":"^0.4.1","colors":"^1.4.0","i":"^0.3.7","inquirer":"^8.2.6","io":"^1.5.0","minimatch":"^9.0.4","semver":"^7.5.4","tar-stream":"^3.1.7","tree-kill":"^1.2.2"},"keywords":[],"_id":"ibot@0.0.2","gitHead":"f2fc1f778b3b0f6938d24edb05c8811d8a1ad1fc","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-Ta1ZuIyMI95xrcI8jt7bBuIVViBmJJCC5RFya9JxdP8BlsQ+JqxsxDSweax4jqHOPOC3qCf6gASAWlZGEsYkMg==","shasum":"8436d5d25ffed411c681aa308e396052e4c8fa22","tarball":"https://registry.npmjs.org/ibot/-/ibot-0.0.2.tgz","fileCount":45,"unpackedSize":92167,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHs1BMh9uqf8resUGEbpmEyVFuSK5FYBVvjq/0Omz9cNAiAIQNYldo14hTOHoyv+Qji/wBiFABIuZkcu+LgWqDSc2w=="}]},"_npmUser":{"name":"keithwhor","email":"keithwhor@gmail.com"},"directories":{},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ibot_0.0.2_1746570789588_0.5124627058505264"},"_hasShrinkwrap":false}},"maintainers":[{"name":"keithwhor","email":"keithwhor@gmail.com"}],"description":"Instant.bot Package Manager: CLI for the Instant.bot Package Registry","keywords":[],"author":{"name":"Keith Horwood"},"license":"MIT","readme":"# Instant.bot Package Manager\n## Extend AI agents with tools, instantly\n\n`ibot` is the official CLI for publishing [Instant.bot](https://instant.bot) packages.\nYou can use this utility to publish new packages to the Instant.bot package registry,\navailable at [instant.bot/packages](https://instant.bot/packages).\n\n[Instant.bot](https://instant.bot) enables you to rapidly build custom\nchatbots and AI agents that can be extended with custom tools. It provides four\nmajor features;\n\n1. Chat with and develop your agent in real time from the web\n2. Extend your agent with [hosted tool packages](https://instant.bot/packages)\n3. Write your own private tool packages for your agents\n4. Deploy your agent to third-party services like Discord and Slack\n\n## What is the Instant.bot Package Registry?\n\nThe Instant.bot Package Registry is a **serverless hosting platform and registry** for\nbuilding tools that extend AI chatbots and agents.\n\n**Instant.bot packages are just REST API servers.**\nEvery package is an [Instant API](https://github.com/instant-dev/api) project,\nwhich is a simple way to export and auto-document JavaScript functions as REST endpoints\nthat can be called via any HTTP client.\n\nAuthentication to your published packagesare handled via **API keychains** which\nare delegated via [Instant.bot](https://instant.bot).\n\n**NOTE:** While in beta, only Instant.bot agents can use your published tools.\nWe'll be opening up the gateway to programmatic access in the coming months.\n\n## Instant.bot Package vs. MCP\n\nReminder, **Instant.bot packages are just REST API servers.**\n\nMCP, or Model Context Protocol, is a standard for passing tool and prompt context\nbetween AI models and service providers. Instant.bot packages are **not**\nMCP compatible out of the box, as they are simply REST APIs. However, it is our goal to add\nMCP bindings to the [Instant API](https://github.com/instant-dev/api) framework which\npowers all Instant.bot packages. When formalized, this will allow you to use\nInstant.bot packages with any MCP-compatible client or service provider.\nContributors welcome!\n\n## Quickstart\n\nVisit [instant.bot/signup](https://instant.bot/signup) to register.\nCreating a new bot is easy, you can then use this CLI to develop\nand publish custom packages to extend your bots.\n\n```shell\n$ npm i ibot -g\n$ mkdir new-project\n$ cd new-project\n$ ibot init  # initialize project in this directory\n$ ibot login # log in to Instant.bot Package Registry with your Instant.bot account\n$ ibot serve # run your tool package on a local server to test\n$ ibot run / # test a single endpoint (like curl)\n$ ibot up    # publish to development environment\n$ ibot up --env staging    # publish to staging environment\n$ ibot up --env production # publish to production environment\n```\n\nYou can run `ibot help` at any time to see available commands.\n\n# Table of contents\n\n1. [How does Instant.bot work?](#how-does-instant-bot-work)\n   1. [How is hosting billed?](#how-is-hosting-billed)\n1. [Building custom packages for your bots](#building-custom-packages-for-your-bots)\n   1. [Initialize a project](#initialize-a-project)\n      1. [Defining tools aka endpoints](#defining-tools-aka-endpoints)\n      1. [Endpoint name, description, types](#endpoint-name-description-types)\n   1. [Deploy an Instant.bot Package](#deploy-an-instant-tool-package)\n      1. [Public packages](#public-packages)\n      1. [Private packages](#private-packages)\n1. [Additional utilities](#additional-utilities)\n   1. [Generate endpoints](#generate-endpoints)\n   1. [Generate tests](#generate-tests)\n   1. [Run tests](#run-tests)\n   1. [Environment variables](#environment-variables)\n1. [Roadmap](#roadmap)\n1. [Contact](#contact)\n\n# How does Instant.bot work?\n\nInstant.bot provides hosting for both (1) your agent and (2) your tool packages.\nYour agent is a chatbot that you can chat with directly via the Instant.bot web interface.\nTool packages are REST APIs that can be used by your agent. You can publish tool packages\nfor use by your agent and others or keep them private.\n\nWhen you ask your agent a question that requires a tool call, Instant.bot will\nautomatically route the request to the appropriate tool from the Instant.bot Package Registry\nand call the tool on your behalf.\n\n## How is hosting billed?\n\nModel usage (generating responses) is a subscription-based service. However,\nfor development purposes, you can use our lowest-tier model indefinitely in rate-limited mode\non the free tier **but only while on the web interface**.\n\nTools cost money to run, and are billed as serverless functions\nat a rate of [$0.50 of credits per 1,000 GB-s](https://instant.bot/pricing) of usage.\nCredits are prepaid, and during our beta period all users get a one-time bonus of $1.00\nin free usage credits.\n\nGB-s represents a \"gigabyte-second\" and is calculated by the function RAM × execution time.\nFor example, a function with 512 MB (0.5 GB) of RAM running for 200ms would use:\n\n- Used GB-s = 0.5GB × 0.2s = 0.1 GB-s\n- Used credits = $0.50 / 1,000 GB-s × 0.1 GB-s = $0.00005\n\n# Building custom packages for your bots\n\nBuilding bots on [Instant.bot](https://instant.bot) is straightforward. Extending\nwith custom tool packages can be done online via the web interface, or if you prefer\nworking with your own editor, you can use this CLI.\n\n## Initialize a project\n\nTo initialize a new Instant.bot package:\n\n```shell\n$ npm i ibot -g\n$ mkdir new-project\n$ cd new-project\n$ ibot init\n```\n\nYou'll be walked through the process. The `ibot` CLI will automatically check for\nupdates to core packages, so make sure you update when available. To play around with your\nInstant.bot package locally;\n\n```shell\n$ ibot serve\n```\n\nWill start an HTTP server. To execute a standalone endpoint / tool:\n\n```shell\n$ ibot run /\n```\n\n### Defining tools aka endpoints\n\nDefining custom tools is easy. You'll find the terms **tool** and\n**endpoint** used interchangeably as they all refer\nto the same thing: your bot executing custom code in the cloud.\n\nA **tool** is just an **endpoint** hosted by the Instant.bot Package Registry.\n\nAll endpoints for Instant.bot packages live in the `functions/` directory.\nEach file name maps to the endpoint route e.g. `functions/hello.js`\nroutes to `localhost:8000/hello`. You can export custom `GET`, `POST`, `PUT`\nand `DELETE` functions from every file. Here's an example \"hello world\" endpoint:\n\n```javascript\n// functions/hello.js\n\n/**\n * A basic hello world function\n * @param {string} name Your name\n * @returns {string} message The return message\n */\nexport async function GET (name = 'world') {\n  return `hello ${name}`!\n};\n```\n\nYou can write any code you want and install any NPM packages you'd like to\nyour tool package.\n\n### Endpoint name, description, types\n\nUsing the comment block above every exported method (e.g. GET) you can\ndefine your endpoint. Instant.bot packages use an open source specification called\n[Instant API](https://github.com/instant-dev/api) to export JavaScript\nfunctions as type safe web APIs. You can learn more about how to properly\ndefine and document the shape (parameters) of your API there.\n\n## Deploy an Instant.bot Package\n\n### Public packages\n\n**NOTE:** You **will not** be charged for other people using your public actions.\nThey are billed directly from their account.\n\nBy default all packages are created as public projects. Public\nprojects are namespaced to your username, e.g. `@my-username/project`.\nThis can be found in the `\"name\"` field of `instant.package.json`.\n\nNote that the code for public projects will be shared publicly for anybody\nto see, and the expectation is that others can use this code in their bots\nas well.\nthey will be billed from their balance.\n\nTo deploy a public project to a `development` environment, you can use:\n\n```shell\n$ ibot up\n```\n\nYou can also publish to `staging` and `production` using:\n\n```shell\n$ ibot up --env staging\n$ ibot up --env production\n```\n\n### Private packages\n\n**NOTE:** You **_WILL_** be charged by anybody accessing your private\npackages. However, all code and endpoints will not be publicly available;\nyou must share the URL with somebody in order for them to use it.\n\nYou can publish private project by prepending `private/` on the\n`\"name\"` field in `instant.package.json`, e.g.\n\n```json\n{\n  \"name\": \"private/@my-username/private-package\"\n}\n```\n\nYou then deploy as normal. These packages will be visible by you in the\nregistry but nobody else.\n\n# Additional utilities\n\nThere are a few additional utilities you may find useful with this package;\n\n## Generate endpoints\n\n```shell\n# generates functions/my-endpoint/example.js\n$ ibot g:endpoint my-endpoint/example\n```\n\n## Generate tests\n\n```shell\n# Generate blank tests or ones for an endpoint\n$ ibot g:test my_test # OR ...\n$ ibot g:test --endpoint my-endpoint/example\n```\n\n## Run tests\n\nYou can write tests for your tools to verify they work. Simply run;\n\n```shell\n$ ibot test\n```\n\nAnd voila!\n\n## Environment variables\n\nYou can store environment variables with your packages in;\n\n```\n.env\n.env.production\n.env.staging\n```\n\nThese files **will not** be published for everybody to see, so\nyou can use them to hide secrets within your code. However, be\ncareful when using environment variables with public packages:\nif you ever return them in an endpoint response, or connect to\nsensitive data, there's a chance you may expose that information\nto another user of the platform.\n\n# Roadmap\n\nThere's a lot to build! [Instant.bot](https://instant.bot) is still in early beta. Coming soon;\n\n- Deploy to Slack\n- Uploading image support\n- Knowledge bases\n- Much more!\n\nSubmit requests via Discord at [discord.gg/instant](https://discord.gg/instant)!\n\n# Contact\n\nThe best place for help and support is Discord at [discord.gg/instant](https://discord.gg/instant),\nbut feel free to bookmark all of these links.\n\n| Destination | Link |\n| ----------- | ---- |\n| Instant.bot | [instant.bot](https://instant.bot) |\n| GitHub | [github.com/instantbots](https://github.com/instantbots) |\n| Discord | [discord.gg/instant](https://discord.gg/instant) |\n| X / instantbots | [x.com/instantbots](https://x.com/instantbots) |\n| X / Keith Horwood | [x.com/keithwhor](https://x.com/keithwhor) |\n","readmeFilename":"README.md"}