{ "name": "vscode-tabby", "publisher": "TabbyML", "displayName": "Tabby", "description": "Tabby is a self-hosted AI coding assistant that can suggest multi-line code or full functions in real-time.", "homepage": "https://tabby.tabbyml.com/", "repository": "https://github.com/TabbyML/tabby", "bugs": "https://github.com/TabbyML/tabby/issues", "license": "Apache-2.0", "version": "0.5.0-dev", "keywords": [ "ai", "autocomplete", "code completion", "copilot", "intellisense", "intellicode", "snippets", "tabby" ], "icon": "assets/logo.png", "engines": { "vscode": "^1.82.0" }, "categories": [ "Programming Languages", "Machine Learning", "Other" ], "activationEvents": [ "onStartupFinished" ], "main": "./dist/node/extension.js", "browser": "./dist/web/extension.js", "contributes": { "commands": [ { "command": "tabby.toggleEnabled", "title": "Tabby: Toggle Code Suggestion On/Off" }, { "command": "tabby.setApiEndpoint", "title": "Tabby: Specify API Endpoint of Tabby" }, { "command": "tabby.openSettings", "title": "Tabby: Open Settings" }, { "command": "tabby.openTabbyAgentSettings", "title": "Tabby: Open Tabby Agent Settings" }, { "command": "tabby.gettingStarted", "title": "Tabby: Getting Started" } ], "menus": { "commandPalette": [ { "command": "tabby.openTabbyAgentSettings", "when": "!isWeb" } ] }, "walkthroughs": [ { "id": "gettingStarted", "title": "Getting Started with Tabby", "description": "Set up your own AI coding assistant", "steps": [ { "id": "getTabbyServerReady", "title": "Get Tabby Server Ready", "description": "The Tabby VSCode extension requires a Tabby server to work. Please follow this guide to get your Tabby server ready.", "media": { "markdown": "assets/walkthroughs/server.md" } }, { "id": "connectToTabbyServer", "title": "Connect to Tabby Server", "description": "Once your Tabby server is ready, specify the server API endpoint here. If you are using a Tabby Cloud endpoint, please follow the popup messages to complete authorization. \n[Specify API Endpoint](command:tabby.setApiEndpoint)", "media": { "image": "assets/walkthroughs/setApiEndpoint.png", "altText": "Tabby: Specify API Endpoint of Tabby" } }, { "id": "codeCompletion", "title": "Code Completion", "description": "Tabby provides inline suggestions automatically, and you can accept suggestions by just pressing the Tab key. Follow this guide to find more useful actions.", "media": { "markdown": "assets/walkthroughs/codeCompletion.md" } }, { "id": "commands", "title": "Commands", "description": "Type `>Tabby:` in command palette to list all Tabby commands. \n[Tabby commands](command:workbench.action.quickOpen?%5B%22%3ETabby%3A%22%5D)", "media": { "image": "assets/walkthroughs/commands.png", "altText": "Tabby Commands" } } ] } ], "configuration": { "title": "Tabby", "properties": { "tabby.api.endpoint": { "type": "string", "default": "", "pattern": "(^$)|(^https?:\\/\\/\\S+$)", "patternErrorMessage": "Please enter a validate http or https URL.", "markdownDescription": "Specify API Endpoint of Tabby. \nIf leave empty, server endpoint in [Tabby Agent Settings](command:tabby.openTabbyAgentSettings) will be used." }, "tabby.codeCompletion": { "type": "boolean", "default": true, "description": "Enable Tabby code completion or not." }, "tabby.keybindings": { "type": "string", "enum": [ "vscode-style", "tabby-style" ], "default": "vscode-style", "markdownDescription": "Select keybinding profile to accept current inline completion. \n | | Next Line | Full Completion | Next Word | \n |:---:|:---:|:---:|:---:| \n | _vscode-style_ | - | Tab | Ctrl + RightArrow | \n | _tabby-style_
_(experimental)_ | Tab | Ctrl + Tab | Ctrl + RightArrow | \n" }, "tabby.usage.anonymousUsageTracking": { "type": "boolean", "default": false, "description": "Disable anonymous usage tracking." } } }, "keybindings": [ { "command": "tabby.inlineCompletion.accept", "key": "tab", "when": "config.tabby.codeCompletion && config.tabby.keybindings === 'vscode-style' && inlineSuggestionVisible && !editorReadonly && !editorTabMovesFocus && inlineSuggestionHasIndentationLessThanTabSize" }, { "command": "tabby.inlineCompletion.acceptNextWord", "key": "ctrl+right", "when": "config.tabby.codeCompletion && config.tabby.keybindings === 'vscode-style' && inlineSuggestionVisible && !editorReadonly" }, { "command": "tabby.inlineCompletion.accept", "key": "ctrl+tab", "when": "config.tabby.codeCompletion && config.tabby.keybindings === 'tabby-style' && inlineSuggestionVisible && !editorReadonly" }, { "command": "tabby.inlineCompletion.acceptNextWord", "key": "ctrl+right", "when": "config.tabby.codeCompletion && config.tabby.keybindings === 'tabby-style' && inlineSuggestionVisible && !editorReadonly" }, { "command": "tabby.inlineCompletion.acceptNextLine", "key": "tab", "when": "config.tabby.codeCompletion && config.tabby.keybindings === 'tabby-style' && inlineSuggestionVisible && !editorReadonly && !editorTabMovesFocus" } ] }, "scripts": { "prebuild": "cd ../tabby-agent && yarn build", "build": "tsup --minify --treeshake smallest", "watch": "tsup --sourcemap --watch ./ --ignore-watch ./dist --watch ../tabby-agent/dist", "dev": "code --extensionDevelopmentPath=$PWD --disable-extensions && yarn watch", "dev:browser": "vscode-test-web --extensionDevelopmentPath=$PWD --browserType=chromium --port=3000 && yarn watch", "lint": "prettier --write .", "vscode:prepackage": "yarn build", "vscode:package": "vsce package --no-dependencies", "vscode:prepublish": "yarn build", "vscode:publish": "vsce publish --no-dependencies" }, "devDependencies": { "@types/glob": "^7.2.0", "@types/mocha": "^10.0.1", "@types/node": "16.x", "@types/vscode": "^1.70.0", "@typescript-eslint/eslint-plugin": "^5.31.0", "@typescript-eslint/parser": "^5.31.0", "@vscode/test-electron": "^2.1.5", "@vscode/test-web": "^0.0.44", "@vscode/vsce": "^2.15.0", "assert": "^2.0.0", "esbuild-plugin-polyfill-node": "^0.3.0", "eslint": "^8.20.0", "glob": "^8.0.3", "prettier": "^3.0.0", "tsup": "^7.1.0", "typescript": "^4.7.4" }, "dependencies": { "@xstate/fsm": "^2.0.1", "tabby-agent": "0.2.0-dev" } }