{"id":15464367,"url":"https://github.com/icebaker/vscode-nano-bots","last_synced_at":"2025-09-19T00:32:19.400Z","repository":{"id":167049816,"uuid":"642606791","full_name":"icebaker/vscode-nano-bots","owner":"icebaker","description":"Boost productivity and power your workflow with Nano Bots for Visual Studio Code: small, AI-powered bots that can be easily shared as a single file, designed to support multiple providers such as Cohere Command, Google Gemini, Maritaca AI MariTalk, Mistral AI, Ollama, OpenAI ChatGPT, and others, with support for calling tools (functions).","archived":false,"fork":false,"pushed_at":"2024-01-13T14:03:07.000Z","size":485,"stargazers_count":11,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-01T16:11:43.831Z","etag":null,"topics":["alpaca","chatgpt","cohere-ai","gemini-ai","gemini-pro","google-gemini","gpt","gpt-4","llama","llm","maritaca-ai","mistral-ai","nano-bots","ollama","openai","openai-api","vicuna","visual-studio-code","vscode","vscode-extension"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=icebaker.nano-bots","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/icebaker.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-19T00:37:50.000Z","updated_at":"2024-11-12T02:15:13.000Z","dependencies_parsed_at":"2024-01-13T15:38:28.781Z","dependency_job_id":"eb6d2e0b-658e-43ad-97b3-ae5021f4c259","html_url":"https://github.com/icebaker/vscode-nano-bots","commit_stats":{"total_commits":35,"total_committers":1,"mean_commits":35.0,"dds":0.0,"last_synced_commit":"921147d9ab89bf27495b2b711e9a0e3e6b4ecdea"},"previous_names":["icebaker/vscode-nano-bots"],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/icebaker/vscode-nano-bots","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icebaker%2Fvscode-nano-bots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icebaker%2Fvscode-nano-bots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icebaker%2Fvscode-nano-bots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icebaker%2Fvscode-nano-bots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/icebaker","download_url":"https://codeload.github.com/icebaker/vscode-nano-bots/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/icebaker%2Fvscode-nano-bots/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273317746,"owners_count":25084037,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alpaca","chatgpt","cohere-ai","gemini-ai","gemini-pro","google-gemini","gpt","gpt-4","llama","llm","maritaca-ai","mistral-ai","nano-bots","ollama","openai","openai-api","vicuna","visual-studio-code","vscode","vscode-extension"],"created_at":"2024-10-02T00:34:40.463Z","updated_at":"2025-09-19T00:32:18.959Z","avatar_url":"https://github.com/icebaker.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nano Bots for Visual Studio Code\n\n[Nano Bots](https://spec.nbots.io): AI-powered bots that can be easily shared as a single file, designed to support multiple providers such as [Cohere Command](https://cohere.com), [Google Gemini](https://deepmind.google/technologies/gemini), [Maritaca AI MariTalk](https://www.maritaca.ai), [Mistral AI](https://mistral.ai), [Ollama](https://ollama.ai), [OpenAI ChatGPT](https://openai.com/chatgpt), and others, with support for calling tools (functions).\n\nEnhance your productivity and workflow by bringing the power of Artificial Intelligence to your code editor!\n\n![Nano Bots](https://raw.githubusercontent.com/icebaker/assets/main/vscode-nano-bots/cover-b.png)\n\n- [Installation](#installation)\n  - [Setup](#setup)\n    - [Local API Instance](#local-api-instance)\n- [Commands](#commands)\n  - [Prompt](#prompt)\n  - [Apply](#apply)\n  - [Evaluate](#evaluate)\n  - [Stop](#stop)\n- [Cartridges](#cartridges)\n  - [Marketplace](#marketplace)\n  - [Default](#default)\n- [Shortcuts](#shortcuts)\n  - [Suggested Defaults](#suggested-defaults)\n  - [Custom Commands](#custom-commands)\n  - [State](#state)\n- [Development](#development)\n\n## Installation\n\nYou can install Nano Bots directly from the Visual Studio Code Marketplace via [this link](https://marketplace.visualstudio.com/items?itemName=icebaker.nano-bots) or by searching for it within the editor.\n\nAlternatively, you can choose to install it manually:\n\n1. Download the most recent `.vsix` file from [Releases](https://github.com/icebaker/vscode-nano-bots/releases).\n2. Open VS Code and navigate to the Extensions view by clicking on \"View\" -\u003e \"Extensions\" (or press Ctrl+Shift+X).\n3. In the top right-hand corner of the Extensions window, click on the \"...\" menu and select \"Install from VSIX...\"\n4. Choose the `.vsix` file you downloaded in step 1.\n\nOnce completed, the extension will be successfully installed and available for use in VS Code.\n\n### Setup\n\nBy default, access to the public Nano Bots API is available. However, it only provides a default Cartridge and may sometimes be slow or unavailable due to rate limits. This is common when many users around the world intensely use the API simultaneously.\n\nTo obtain the best performance and the opportunity to develop and personalize your own Cartridges, it is recommended that you use your own provider credentials to run your instance of the API locally. This approach will provide a superior and customized experience, in contrast to the convenient yet limited experience provided by the public API.\n\n#### Local API Instance\n\nTo connect your extension to your own local Nano Bots API, start a local instance using [nano-bots-api](https://github.com/icebaker/nano-bots-api). Please note that the local API still relies on external providers, which has its own policies regarding security and privacy. However, if you choose to use [Ollama](https://ollama.ai) with open source Models, you can ensure that everything is kept local and remains completely private.\n\nOnce you have access to the Nano Bots API, you can navigate to \"File\" -\u003e \"Preferences\" -\u003e \"Settings\". Then, search for `Nano Bots` and configure the following settings:\n\n- `NANO_BOTS_API_ADDRESS`: `http://localhost:3048`\n- `NANO_BOTS_STREAM`: `true`\n- `NANO_BOTS_END_USER`: `anonymous` (`your-name`)\n\n![settings](https://user-images.githubusercontent.com/113217272/239404558-aacd4efa-1657-4516-baeb-d0c564c7fcb2.png)\n\n## Commands\n\nAfter installation, you will have the following commands available in the command pallet:\n\n- 🤖 Nano Bots: [Prompt](#prompt)\n- 🤖 Nano Bots: [Apply](#apply)\n- 🤖 Nano Bots: [Evaluate](#evaluate)\n- 🤖 Nano Bots: [Stop](#stop)\n\n### Prompt\n\nThe Prompt command works like a traditional chat, allowing you to ask a question and receive an answer from the Nano Bot.\n\nExample:\n\n```text\n  Prompt: write a hello world in Ruby\n\nNano Bot: puts \"Hello, world!\"\n```\n\nhttps://user-images.githubusercontent.com/113217272/239404291-ec8b1f65-7d9b-4d60-be48-f2aac21b84ea.mp4\n\n### Apply\n\nThe Apply command works on a text selection. You select a piece of text and ask the Nano Bot to perform an action.\n\nExample:\n\n```text\nSelected Text: How are you doing?\n       Prompt: translate to french\n\n     Nano Bot: Comment allez-vous ?\n```\n\nhttps://user-images.githubusercontent.com/113217272/239405546-74bbfb6c-4095-40bc-8095-85e423d73267.mp4\n\n### Evaluate\n\nThe Evaluate command sends your currently selected text to a Nano Bot without any additional instructions.\n\nExample:\n\n```text\nSelected Text: Hi!\n\n     Nano Bot: Hello! How can I assist you today?\n```\n\nhttps://user-images.githubusercontent.com/113217272/239405849-65bb7bb8-5591-4e2b-b4de-7035b4c86a66.mp4\n\n### Stop\n\nTo interrupt a streaming response or stop waiting for a complete response, you can use the \"Stop\" command in the command palette. This is useful if you realize that the bot's answer is not what you were expecting from your request.\n\n## Cartridges\n\nWhen executing any of the commands mentioned earlier, a prompt will appear asking you to select a Cartridge. The default Cartridge is the standard chat interaction. However, you can create your own Cartridges which will automatically appear in the command palette.\n\nFor further details on Cartridges, please refer to the [Nano Bots](https://github.com/icebaker/nano-bots) specification. You can find it [here](https://spec.nbots.io/#/README?id=cartridges).\n\nhttps://user-images.githubusercontent.com/113217272/239406395-6da4557b-9435-40cd-a0ed-f2393cc99576.mp4\n\n### Marketplace\n\nYou can explore the Nano Bots [Marketplace](https://nbots.io) to discover new cartridges that can help you.\n\n### Default\n\nYou can override the default cartridge by creating your own with the name `default.yml`:\n\n```yaml\n---\nmeta:\n  symbol: 🤖\n  name: Default\n  author: Your Name\n  version: 1.0.0\n  license: CC0-1.0\n  description: A helpful assistant.\n\nprovider:\n  id: openai\n  credentials:\n    address: ENV/OPENAI_API_ADDRESS\n    access-token: ENV/OPENAI_API_KEY\n  settings:\n    user: ENV/NANO_BOTS_END_USER\n    model: gpt-3.5-turbo\n```\n\n## Shortcuts\n\nTo add your own shortcuts, navigate to \"File\" \u003e \"Preferences\" \u003e \"Keyboard Shortcuts\". There are no default shortcuts, but we suggest the following shortcuts for your convenience:\n\n### Suggested Defaults\n\n```json\n[\n  {\n    \"key\": \"ctrl+b ctrl+p\",\n    \"command\": \"nano-bots.prompt\",\n    \"args\": {\n      \"state\": \"-\",\n      \"mode\": \"add\"\n    }\n  },\n  {\n    \"key\": \"ctrl+b ctrl+l\",\n    \"command\": \"nano-bots.apply\",\n    \"args\": {\n      \"state\": \"-\",\n      \"mode\": \"replace\",\n      \"prefix\": \"\",\n      \"format\": \"[prompt]: [input]\"\n    }\n  },\n  {\n    \"key\": \"ctrl+b ctrl+b\",\n    \"command\": \"nano-bots.evaluate\",\n    \"args\": {\n      \"state\": \"-\",\n      \"mode\": \"replace\"\n    }\n  },\n  {\n    \"key\": \"ctrl+b ctrl+k\",\n    \"command\": \"nano-bots.stop\"\n  }\n]\n```\n\n### Custom Commands\n\nThe `action` keyword refers to the [available commands](#commands).\n\nThe `mode` refers to how the answer will be delivered when a text is selected. `add` will add the answer after the selected text, while `replace` will replace it with the answer.\n\nWhen `add` is defined, you may also want to add a `prefix`:\n\n```json\n{\n  \"key\": \"ctrl+b ctrl+l\",\n  \"command\": \"nano-bots.apply\",\n  \"args\": {\n      \"state\": \"-\", \"mode\": \"add\", \"prefix\": \"\\n\",\n      \"format\": \"[prompt]: [input]\" }\n},\n```\n\nWhen using the `apply` command, it is possible to customize the prompt by including a `format` keyword:\n\n```text\nSelected Text: How are you doing?\n       Prompt: translate to french\n```\n\n```json\n{\n  \"format\": \"[prompt]: [input]\"\n}\n```\n\nWill produce the prompt:\n\n```text\ntranslate to french: How are you doing?\n```\n\nIf you prefer to skip the prompt for selecting a Cartridge when using those commands, you can define the desired cartridge beforehand:\n\n```json\n{\n  \"key\": \"ctrl+b ctrl+b\",\n  \"command\": \"nano-bots.evaluate\",\n  \"args\": { \"state\": \"-\", \"mode\": \"replace\", \"cartridge\": \"-\" }\n}\n```\n\nThe `-` represents the default Cartridge. You can replace it with any other available Cartridge in your system.\n\nIf you want to define a straightforward command that does not require any user input or consideration, you can accomplish this by using:\n\n```json\n{\n  \"key\": \"ctrl+b ctrl+p\",\n  \"command\": \"nano-bots.prompt\",\n  \"args\": { \"state\": \"-\", \"mode\": \"add\", \"cartridge\": \"-\", \"input\": \"Hello!\" }\n}\n```\n\nIf you wish to define a command that applies to your current selection without requiring any additional input, you can use:\n\n```json\n{\n  \"key\": \"ctrl+b ctrl+b\",\n  \"command\": \"nano-bots.evaluate\",\n  \"args\": { \"state\": \"-\", \"mode\": \"replace\", \"cartridge\": \"-\" }\n}\n```\n\n```json\n{\n  \"key\": \"ctrl+b ctrl+l\",\n  \"command\": \"nano-bots.apply\",\n  \"args\": {\n    \"state\": \"-\",\n    \"mode\": \"replace\",\n    \"cartridge\": \"-\",\n    \"input\": \"translate to en-us\"\n  }\n}\n```\n\n### State\n\nAll interactions with Nano Bots are stateless by default. However, if you wish to preserve the history of interactions, you can use a state key:\n\n```json\n{\n  \"key\": \"ctrl+b ctrl+p\",\n  \"command\": \"nano-bots.prompt\",\n  \"args\": {\n    \"state\": \"0470dfa445f1f11b5eb9b3089c5943c8\",\n    \"mode\": \"add\"\n  }\n}\n```\n\nEach cartridge will maintain its own isolated state. Please refer to the [specification](https://spec.nbots.io/#/README?id=state) for further information on state management.\n\n## Development\n\nClone the repository using the command:\n\n```\ngit clone https://github.com/icebaker/vscode-nano-bots.git\n```\n\nNavigate to the `vscode-nano-bots` folder and open it in Visual Studio Code using the command `vscode .`. Press F5 to launch the extension.\n\nFor more information on extension development, refer to the [Your First Extension](https://code.visualstudio.com/api/get-started/your-first-extension) page.\n\n```bash\nnpm run format\nnpm run lint\nnpm run test\n\nvsce package\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficebaker%2Fvscode-nano-bots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ficebaker%2Fvscode-nano-bots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ficebaker%2Fvscode-nano-bots/lists"}