Skip to main content

VS Code Extension

The TimeCampus time-tracking workspace, in your editor. Manage projects, tasks, time entries, timesheet approvals, and Pomodoro focus sessions against the Burdenoff workspace + global GraphQL gateways — without leaving VS Code.

Publisher burdenoff · extension id burdenoff.timecampus-code-extension.

Features​

  • Activity-bar views for the core TimeCampus entities:
    • Projects (expand to their tasks)
    • Tasks (workspace-wide, attributed to their project)
    • Time Entries (running + stopped timers)
    • Approvals (timesheet approval requests)
    • Pomodoro (focus / break sessions)
    • Dashboard (live time-tracking KPIs)
  • Create / update / delete flows via guided input pickers: create projects and tasks, start/stop timers, submit timesheets for approval, approve/reject requests, and start/complete Pomodoro sessions.
  • Webview panels (dual-bundled browser UI): rich Project Detail, Task Detail, Dashboard, and Reports panels.
  • Status bar showing tracked hours + running-timer state at a glance.
  • Editor integration: start a timer from the current text selection.
  • Output-channel Analytics Overview and a copy/export-friendly log buffer.

Install​

From the Marketplace​

Search for TimeCampus in the VS Code Extensions view and install. The extension defaults to the production Burdenoff endpoints.

From a VSIX​

git clone https://github.com/algoshred/timecampus-code-extension.git
cd timecampus-code-extension
bun install
bun run build
bun run package
# Install the generated timecampus-code-extension-*.vsix in VS Code

Authentication​

TimeCampus uses the Burdenoff OAuth 2.0 device-code flow (works on local, Remote-SSH, Codespaces, and WSL). Tokens are stored in VS Code SecretStorage.

  1. Run TimeCampus: Login (or click Sign In in the Projects view).
  2. Enter the displayed code at the verification URL.
  3. Pick a workspace. The extension issues a workspace-scoped token and scopes all data requests to it.

The VS Code OAuth client id is burdenoff_vscode_timecampus and the redirect is vscode://burdenoff.timecampus-code-extension/auth/callback.

Environment selection​

Endpoint selection is controlled exclusively by the BURDENOFF_ENV environment variable. The default is always prod.

BURDENOFF_ENVWorkspace gatewayGlobal gatewayApp URL
prod (default)https://graphqlworkspaces.burdenoff.com/workspaces/graphqlhttps://graphql.burdenoff.com/global/graphqlhttps://app.timecampus.com
alphahttps://alphagraphqlworkspaces.burdenoff.com/workspaces/graphqlhttps://alphagraphql.burdenoff.com/global/graphqlhttps://alphaapp.timecampus.com
localhttp://127.0.0.1:4003/workspaces/graphqlhttp://127.0.0.1:4000/global/graphqlhttps://app.local.timecampus.com

Set the variable in the shell before launching VS Code:

BURDENOFF_ENV=local code .

All endpoint URLs are defined in a single file: src/config/environment.ts.

Development​

git clone https://github.com/algoshred/timecampus-code-extension.git
cd timecampus-code-extension
bun install
bun run lint # eslint, zero warnings
bun run typecheck # tsc --noEmit
bun run compile # tsc -> out/ (test harness)
BURDENOFF_ENV=local bun run build # webpack (extension host + webview UI)
bun run compile:test
bun run test # @vscode/test-electron (needs a display / xvfb)
bun run smoke:build # production-build smoke check
bun run package # vsce package -> .vsix
bun run sanity # all of the above

Running tests​

Extension-host tests launch a real VS Code instance. On Linux without a display, use xvfb-run:

xvfb-run -a env TIMECAMPUS_FORCE_EXTENSION_TESTS=true bun run test

Mock-based unit tests use nock to intercept GraphQL HTTP requests and do not require a running backend.

Configuration​

SettingDefaultPurpose
timecampus.clientId(built-in)OAuth client id override
timecampus.workspaceId(auto)Set after login

Endpoint URLs are no longer configurable through VS Code settings; use BURDENOFF_ENV to select the target environment.

Keybindings​

CommandKeybinding
TimeCampus: Quick ActionsCtrl+Shift+K / Cmd+Shift+K
TimeCampus: Open DashboardCtrl+K Ctrl+D / Cmd+K Cmd+D
TimeCampus: Open ReportsCtrl+K Ctrl+R / Cmd+K Cmd+R
TimeCampus: Start Timer from SelectionCtrl+Shift+T / Cmd+Shift+T

Release​

Tag pushes (v*) build + test + package a VSIX and attach it to a GitHub Release — they never auto-publish. Marketplace / OpenVSX publishing is a deliberate, human-gated workflow_dispatch with the relevant PAT secret. See RELEASE.md in the repo.

Source​

Source at github.com/algoshred/timecampus-code-extension.

Next steps​