ByteBell VSCode Extension
Log in to ByteBell and inspect the current repository and commit hash, read directly
from each workspace folder's .git directory and rendered as HTML.
Features
ByteBell: Log In — authenticate against the existing ByteBell OAuth backend
(@bytebell/auth + github-gateway). Supports:
- Email & Password →
POST /api/v1/auth/login
- GitHub (Better Auth) → the extension starts a localhost loopback server and opens
GET /api/v1/auth/extension-login-start?redirect=<loopback> in the browser. That route
initiates the social sign-in server-side, forwards Better Auth's state cookie to the
browser (so the later callback's state check passes), and redirects to GitHub. After
the OAuth callback, GET /api/v1/auth/extension-login bridges the Better Auth session
cookie to a token (same origin → cookie present) and 302-redirects to the loopback
server with the token in the query string — which the extension captures and stores.
The access token is stored in VS Code SecretStorage.
ByteBell: Show Repo & Commit Info — for every open workspace folder, reads
.git/config (remote origin URL), .git/HEAD, and the loose/packed refs to
resolve the repo URL, branch, and commit hash, then shows them in a
webview as an HTML table. Runs automatically right after a successful login.
ByteBell: Log Out — clears the stored token.
Configuration
The ByteBell gateway origin is baked into the build at compile time — it is fixed per build
and intentionally not a user setting. Set it via BYTEBELL_API_BASE_URL (a local .env, or a
build/CI env var) before npm run compile; it defaults to http://localhost. Auth routes are
appended under /api/v1/auth. See .env.example.
# .env (git-ignored; copy from .env.example)
BYTEBELL_API_BASE_URL=https://app.bytebell.ai
http:// is allowed only for loopback hosts (otherwise tokens would travel in the clear).
Develop
cd vscode-extension
npm install
npm run compile # or: npm run watch
Press F5 in VS Code to launch an Extension Development Host, then run the
commands from the Command Palette (Cmd/Ctrl+Shift+P).
{
"version": "0.2.0",
"configurations": [
{
"name": "Run ByteBell Extension",
"type": "extensionHost",
"request": "launch",
"args": [
"${workspaceFolder}",
"--extensionDevelopmentPath=${workspaceFolder}"
],
"outFiles": [
"${workspaceFolder}/dist/**/*.js"
],
"preLaunchTask": "npm: compile"
}
]
}
launch.json add this[4:19 PM]{
"version": "2.0.0",
"tasks": [
{
"type": "npm",
"script": "compile",
"group": "build",
"problemMatcher": "$tsc",
"label": "npm: compile",
"detail": "tsc -p ./"
},
{
"type": "npm",
"script": "watch",
"isBackground": true,
"group": "build",
"problemMatcher": "$tsc-watch",
"label": "npm: watch",
"detail": "tsc -watch -p ./"
}
]
}
tasks.json inside .vscode
put these in appriopriate files in this workspace