Beezi Plugin for GitHub Copilot
Beezi ships a plugin for GitHub Copilot that reports session usage to your Beezi workspace and brings Beezi's analytics tools into Copilot.
Analytics include tokens, AI credits and premium requests, models, tool calls, active time, code-change counts, subagent activity, and the repository or branch the work belongs to. The plugin reads the session records Copilot saves on your machine and sends analytics derived from them. See Privacy & Credential Storage below for exactly what is included, including session names and error messages.
The plugin works in three places, which all load plugins from the same Copilot folder (~/.copilot, or %USERPROFILE%\.copilot on Windows):
- The Copilot CLI (
copilotin a terminal). - The GitHub Copilot app.
- VS Code, in Local chats, and in sessions VS Code runs on the Copilot CLI harness (Agent Host).
The plugin signs in with your own Beezi account. You must already be a Beezi user; access to analytics follows your account's permissions. You can link more than one Beezi account on the same machine; see Several Beezi Accounts on One Machine below.
1. Requirements
- The Copilot CLI with plugin commands (
copilot plugin install), the GitHub Copilot app, or VS Code with GitHub Copilot Chat. - Node.js 13.2 or newer, available as
nodeon thePATHthat Copilot uses. The plugin's hooks, commands and MCP server all runnode. - Node.js 22.13 or newer for per-call token detail. Older Node versions report session totals instead; see Token Detail below.
git, for repository and branch attribution, and for the installer's first download of the plugin.- A Beezi account and access to your Beezi workspace.
Check Node from your terminal:
node --version
The plugin has zero runtime dependencies. Its scripts use Node built-ins, so there is no separate dependency installation or build step.
A machine without node on the PATH Copilot uses captures nothing, and Copilot shows each Beezi hook as failed. Restart Copilot after installing Node or changing PATH.
2. Installation
There are three ways to install the plugin. The terminal installer is the simplest, because it also runs the sign-in and setup for you.
Option A: Terminal Installer (Recommended)
On macOS or Linux:
curl -fsSL https://beezi.ai/copilot/install.sh | bash
On Windows (Windows PowerShell 5.1 or PowerShell 7):
irm https://beezi.ai/copilot/install.ps1 | iex
The installer finds the Copilot CLI on this machine (including the copy the GitHub Copilot app downloads on macOS) and VS Code, shows what it will do, and asks Continue? before it changes anything. It changes nothing itself except through Copilot's own plugin commands and the plugin's own setup. Then it:
- Adds the Beezi marketplace and installs the plugin, or updates an older copy.
- Runs a short terminal setup in the same window: browser sign-in, where analytics from this machine go (for an account in several workspaces), your Copilot plan, the upload of your past Copilot sessions, crash reports, and the Copilot CLI status line.
When the setup finishes, start a new Copilot session to use Beezi. In VS Code, reload the window.
If both the Copilot CLI and VS Code are on the machine, a first install asks which one should install Beezi. Choose the Copilot CLI to use Beezi in the CLI, the GitHub Copilot app and VS Code, or VS Code to install it through VS Code's own install link.
Skipping the confirmation prompt. For scripted setups, add --yes:
curl -fsSL https://beezi.ai/copilot/install.sh | bash -s -- --yes
$env:BEEZI_YES = '1'; irm https://beezi.ai/copilot/install.ps1 | iex
From a saved copy of the PowerShell script, where your execution policy allows local scripts, use powershell -NoProfile -File install.ps1 -Yes.
With --yes, or when Node.js is not installed, the installer only installs the plugin and does not run the terminal setup. Afterwards, restart Copilot and run /beezi-login to sign in.
If no Copilot CLI is installed, the installer offers the VS Code route when VS Code is present, and otherwise explains how to install the Copilot CLI (npm install -g @github/copilot, brew install --cask copilot-cli on macOS, or winget install GitHub.Copilot on Windows) and run the installer again.
Option B: Copilot Plugin Commands
Add the Beezi marketplace and install the plugin from your terminal:
copilot plugin marketplace add Beezi-AI/beezi-copilot-plugin
copilot plugin install beezi@beezi-copilot
If the Beezi marketplace is already added, you only need the install command.
In the GitHub Copilot app, open Customize → Plugins, add the marketplace https://github.com/Beezi-AI/beezi-copilot-plugin, then install beezi.
Start a new Copilot session after installation so the plugin's commands and MCP server load, then sign in:
/beezi-login
Option C: VS Code Install Link
On a machine with only VS Code, VS Code can install the plugin through its own install link:
vscode://chat-plugin/install?source=Beezi-AI%2Fbeezi-copilot-plugin&plugin=beezi
For VS Code Insiders, the link starts with vscode-insiders:// instead. Confirm VS Code's prompts (Create Session if asked, then Add Marketplace and Install). Then open a new chat set to Local and run /beezi-login.
Install Beezi either through VS Code's marketplace or through the Copilot CLI, not both. With both, VS Code loads the plugin twice. Remove one in VS Code under Extensions → @agentPlugins → beezi → Uninstall.
Signing In
/beezi-login (and the terminal setup, which runs the same steps) walks through:
- Browser sign-in. Approve the connection with your Beezi account. If the browser does not open, use the address printed in the output. Over SSH, in a Codespace or dev container, or when the browser sign-in times out, the plugin offers a paste-back sign-in instead: open the printed link on any device, sign in, and paste the full address from the browser's address bar back within 10 minutes. The browser shows an error page for an
http://127.0.0.1address at that point; that is expected. - Where analytics go. For an account that belongs to several Beezi workspaces, Copilot asks "Where should analytics from this machine go?" You can pick one workspace, several workspaces, or Let me choose per repo. See Accounts in Several Workspaces below.
- Copilot plan. The plugin reads which Copilot plan pays for your usage from Copilot on this machine. If it cannot, Copilot asks: Copilot Free, Student, Pro, Pro+, Max, Business or Enterprise. If VS Code's Copilot is signed in to a different GitHub account, you are asked about that account's plan separately. "I don't know" is fine;
/beezi-settings refreshsets the plan later. - Default account. If another Beezi account is already linked on this machine and is the one
/beezi-analyticsreads from, Copilot offers to make the new account the default. Signing in never switches it on its own. - Past sessions. The plugin uploads this machine's past Copilot sessions (Copilot CLI, Copilot app, VS Code Agent Host and VS Code Local chats) for each workspace that receives them. This can take several minutes and prints progress. Sessions changed in the last 30 minutes are left for live capture.
There is no hook-trust step: once the machine is linked, sessions are reported automatically.
The initial history import is one-time per workspace. When it reports your history pull is finalized, it cannot run again, and Beezi asks you to run /beezi-login on your other machines before their imports finalize too. If the import stops before finishing, running /beezi-login again resumes it. /beezi-sync repairs missing reporting later; it does not reset this import.
Running /beezi-login again is safe. If the machine is already linked as that account, it says so, refreshes your captured plan and resumes any unfinished history upload.
Keeping the Plugin Up to Date
Run the terminal installer again; it updates an older copy and keeps your sign-in. Or update with Copilot's plugin commands:
copilot plugin marketplace update beezi-copilot
copilot plugin update beezi
In the GitHub Copilot app, use Customize → Plugins → Update. If you installed through VS Code's marketplace, update under Extensions → @agentPlugins. Restart Copilot afterwards to apply the update.
The plugin never updates itself. At session start it checks for a newer published version, at most once an hour, and prints the update commands when one is out. /beezi-status lists the same steps, and /beezi-release-notes shows what changed.
Several Beezi Accounts on One Machine
You can link any number of Beezi accounts on one machine, for example a work account and a second workspace.
- Every linked account receives this machine's analytics. Each one gets its own copy of the reports, sent to the workspaces its rules choose.
- The default account only decides which account
/beezi-analyticsand the Beezi MCP tools read from. Changing it does not change where reports go. - To add an account, run
/beezi-loginagain. The browser signs in as whichever Beezi account it is already signed in to, so sign out of Beezi in the browser first or use a private window. - To switch the default, run
/beezi-settings account. Then start a new session (or/restart) so the Beezi tools follow the new default. - To remove an account, run
/beezi-logout. It can log out one account or all of them.
Accounts in Several Workspaces
An account that belongs to several Beezi workspaces chooses where each repository or folder sends its analytics:
- Rules for specific repositories and folders. A rule can send to one or more workspaces, or mark the place as not tracked.
- A New folders default for every place without a rule: Ask me (Beezi asks once per repository or folder, when a session starts there), Send to… chosen workspaces, or Don't send.
When a session starts in a place with no rule and the default is Ask me, Copilot asks where that place's analytics go. Until you answer, the analytics wait on disk and are sent once you choose; analytics held for an unanswered question expire after 3 days.
/beezi-settings rules shows the rules table, with a Default row, a "← you're here" marker on the row that applies to the current folder, and each rule's sessions over the last 30 days. Every rule or New folders change ends with Undo: /beezi-settings undo, which puts your last change back.
When a rule or the New folders default starts sending to a workspace it did not reach before, the plugin sends that workspace this machine's past sessions in the background, skipping what it already has. When you join a new workspace, /beezi-login and /beezi-sync ask which repositories and folders should also send to it.
A one-workspace account has no workspace question. Its rules only choose whether a repository or folder is tracked.
3. Commands
Beezi's commands are skills. Type them as slash commands in a Copilot CLI or Copilot app session, or in a VS Code Local chat. Their names start with beezi- because Copilot already has /login, /logout and /settings. The installer shows the plugin-qualified form, such as /beezi:beezi-login; it runs the same skill.
| Command | Arguments | Purpose |
|---|---|---|
/beezi-login | Optional: a pasted sign-in address, or a number answering an earlier question | Link this machine through browser sign-in, record your Copilot plan, and upload past sessions; run again to add another account |
/beezi-status | None | Show linked accounts, sign-in health, where this folder's analytics go, the Beezi API, your Copilot plan, which hooks fire, the session watcher, the status line, crash reports, and the plugin version with how to update |
/beezi-settings | Optional: a section such as rules, new-folders, account, refresh, undo, telemetry or statusline | Routing rules per repository or folder (with undo), the New folders default, the default account and Copilot plan, crash reports, and Beezi's status line |
/beezi-sync | Optional: an account email | Upload past Copilot sessions Beezi does not have yet; safe to repeat |
/beezi-analytics | Optional: 7d or 30d, and a workspace name | Show your personal analytics summary |
/beezi-release-notes | Optional: all, or a version such as 0.1.95 | Show what changed in the installed version, every release, or one version |
/beezi-logout | None | Log out one account or all of them, revoke access and remove the stored credentials |
You can also ask in conversation, for example "Show my Beezi status", and Copilot runs the matching skill. The exception is /beezi-logout, which runs only when you type it.
/beezi-login, /beezi-logout, /beezi-settings and /beezi-sync ask you questions, so they refuse to run in a session that answers questions without you (autopilot, or questions turned off). Switch back to interactive mode first.
Where Beezi cannot tell whether it can ask you questions, these commands print the choices as a numbered list instead. Run the command again with your choice typed after it, for example /beezi-settings 2.
Notes on Individual Commands
/beezi-status prints one block per linked account (sign-in, workspaces, tracking mode, delivery, where credentials are stored, and where this folder's analytics go) and one block for the machine (Beezi API, Copilot plan and GitHub account, token detail, hooks, watcher, status line, crash reports and plugin version). It changes nothing. An account whose authorization was revoked or must be renewed needs /beezi-login again, signed in as that account; you do not need to log out first.
/beezi-settings opens a menu when run alone; each option shows its current state. Add a section to go straight to it, or a section followed by show (for example /beezi-settings rules show) to print it without changing anything. /beezi-settings refresh re-reads your Copilot plan.
/beezi-sync resumes each session from what Beezi already has, so running it again never uploads the same data twice. With several accounts linked, it runs for each account; name an account to sync only that one. "Everything is already uploaded" is a success. It is not available in a workspace in audit mode.
/beezi-logout asks which account to log out when several are linked, and, if you remove the default, which remaining account becomes the default. It removes the local credentials even if the server cannot be reached; in that case the machine may still appear in the portal's Connections tab, where you can remove it. Afterwards the Beezi tools may still be listed in the current session, but calls to them fail until an account is linked again.
Crash reports are configured in /beezi-settings telemetry. They are off unless you turn them on: correlate (recommended; adds a random installation ID so support can find your reports), on (no installation ID), off (pending reports are deleted), or anonymous (stays on and deletes the installation ID and the reports that carry it). This setting is separate from session analytics.
The status line (Copilot CLI only) is configured in /beezi-settings statusline. Beezi wraps your existing status line, which still looks the same, and records the model, context use and allow-all state of your sessions. /beezi-settings statusline badge on adds a badge such as Beezi → Acme that names where this folder's analytics go. The status line stays off until you turn it on here or accept it during the terminal setup; the badge stays off until you turn it on.
4. Analytics Summary
Run /beezi-analytics for a short summary of your own usage: spend, sessions, top model, an alert status, and recommendations. The default window is 7 days; run /beezi-analytics 30d for 30 days. For an account in several workspaces, add a workspace name to read from that workspace.
The summary covers your own usage across all coding agents linked to your Beezi account, not only Copilot and not your whole team. Figures come from Beezi, and Copilot follows the summary instructions provided by the Beezi server.
When several Beezi accounts are linked, the summary is read from the default account. Use /beezi-settings account to see or change it.
If you are asked to sign in, run /beezi-login. If personal analytics tools remain unavailable on a linked machine, your Beezi administrator may need to enable them for the deployment.
5. How Reporting Works
The plugin captures usage on two paths that share one record of what was already reported, so the same activity is never counted twice:
- Hooks that Copilot runs at points in a session. They are the main path in the Copilot CLI and the GitHub Copilot app.
- The session watcher, which runs inside the plugin's MCP server and reads the session records Copilot has already written. It is the main path for VS Code Agent Host sessions, where hook events are only partly delivered, and a safety net everywhere else, for example when an organization allows only managed hooks.
Hooks
| Hook | What it does |
|---|---|
SessionStart | Checks each account's link, shows Beezi notices (including the workspace question for a new folder), retries queued reports, cleans up old local files, reconciles your Copilot plan and checks for plugin updates. It also starts background work that sends past sessions to newly reached workspaces and catches up on up to 3 recent sessions that grew since they were reported |
UserPromptSubmit | Records the interaction mode and requests a background refresh of your monthly premium-request quota when one is due |
PostToolUse (shell tools) | Checkpoints after git commit, switch, checkout, merge, rebase or pull, and after gh pr checkout |
PostToolUse | Checkpoints at most every 15 minutes |
postToolUseFailure | The same 15-minute checkpoint after a failed tool call |
notification (agent_completed, agent_idle) | The same 15-minute checkpoint when a background agent finishes or goes idle |
PreCompact | Checkpoints before Copilot compacts the context |
PermissionRequest | Records when a session starts waiting for your approval; it never answers the request |
subagentStart | Records a subagent's start |
SubagentStop | Records a subagent's end |
Stop | Checkpoints usage and the activity timeline at the end of each turn |
SessionEnd | Takes the final checkpoint and waits in the background (up to 12 minutes) for Copilot's final usage summary of the session |
ErrorOccurred | Hands a failed model call to the checkpoint, which reports the error |
Host differences:
- VS Code Local chats do not run
subagentStart,postToolUseFailure,notificationorPermissionRequest, and ignore hook matchers. VS Code runs plugin hooks only when its agent hooks are enabled (chat.useHooks) in a trusted workspace. Sessions that hooks miss are still captured by the session watcher while any Copilot surface runs the plugin's MCP server, and by/beezi-sync. - VS Code Agent Host delivers only part of the hook events, so the watcher captures these sessions.
- The GitHub Copilot app's cloud and remote sessions leave no record on this machine and are not tracked.
/beezi-statussays when there are any. - An organization can turn off hooks or MCP servers for VS Code Local chat.
/beezi-statussays so when it detects this; those sessions are then captured only while the Copilot CLI or app runs, or by/beezi-sync.
Session Watcher
The watcher wakes every 20 seconds. It skips a session whose hooks reported in the last 5 minutes and waits at least 60 seconds between passes over one session. Once every 6 hours it also runs the same housekeeping as SessionStart, so queued reports are retried even where SessionStart never fires. Session files over 64 MB are skipped.
Set BEEZI_COPILOT_WATCHER=0 (or false, no, off, disabled) in the environment Copilot starts from to turn the watcher off.
Token Detail
- Per call (Node.js 22.13 or newer): each checkpoint reports the individual model calls Copilot recorded since the last checkpoint, including the calls routed through Auto and calls that had to rewrite Copilot's prompt cache.
- Session totals (older Node.js): Copilot's usage summary is reported once, when the session ends. Earlier checkpoints carry duration, operations and code changes with zero tokens. A session that crashes and is never resumed reports no tokens in this mode.
A session keeps the mode it started in, and /beezi-status shows which mode this machine uses. Subagent usage is reported on its own segment, associated with the parent session. Input tokens are reported without cache reads and writes, which are counted separately.
In VS Code Local chats, usage is reported once per finished request. VS Code records only part of each request's input tokens, so input is a lower bound there, and there is no cache split.
AI Credits, Plan and Quota
The plugin reports AI credits per model as Copilot records them, and premium requests for older plans. A session counts as subscription usage when Copilot is signed in to GitHub and used Copilot's own models. Sessions on your own model provider (a custom provider or bring-your-own-key model), offline sessions, and sessions with no readable GitHub sign-in are reported with an unknown billing source.
Your plan is taken, newest reading first, from a plan you declared in /beezi-login or /beezi-settings refresh, from the Copilot runtime, or from VS Code. A report carries the plan that was in force when the session started, so a session uploaded later is not repriced by a plan change. The Copilot CLI and VS Code sign in to GitHub separately, so the plugin keeps a plan per GitHub account.
At most every 15 minutes, a background process asks the local Copilot runtime for your monthly premium-request quota and sends it to the Beezi workspaces your GitHub account works for. Set BEEZI_COPILOT_QUOTA=0 to turn this off. Copilot exposes no session or weekly rate-limit usage, so none is reported.
If Copilot closes abruptly, queued reports stay on disk for retry. Activity after the last checkpoint is picked up by the next checkpoint, the watcher, or /beezi-sync.
What Gets Attributed Where
The plugin uses each session's working directory and git to attribute work to a repository and branch. The origin remote, with any credentials stripped, identifies the repository.
Work outside a git repository, or in a repository without an origin remote, is reported under a folder label such as local:my-project, which contains the folder's name, not its full path. Every GitHub Copilot app chat folder is reported as local:copilot-chats.
MCP Bridge
The plugin adds an MCP server, beezi-copilot, that connects Copilot to Beezi's MCP server using the credentials stored at sign-in. There is no second sign-in for MCP. With several accounts linked, the tools are served for the default account.
Before any account is linked, the only tool is beezi_status, which reports the link and capture state of this machine. After sign-in, the analytics tools your Beezi deployment and account permissions allow appear, such as the personal summary behind /beezi-analytics. Ticket drafting, estimation and repository-browsing tools are not offered in Copilot.
Optional Configuration
Set these in the environment Copilot starts from. Whether a variable reaches the plugin's MCP server process depends on the Copilot surface.
| Variable | Default | Purpose |
|---|---|---|
BEEZI_API_URL | https://api.beezi.ai/api | Beezi API base URL |
BEEZI_MCP_URL | The API URL followed by /mcp | Beezi MCP endpoint the bridge forwards to |
BEEZI_COPILOT_HOME | ~/.beezi-copilot | Local state folder: queue, session state and credentials |
BEEZI_COPILOT_WATCHER | On | 0, false, no, off or disabled turns the session watcher off |
BEEZI_COPILOT_QUOTA | On | 0, false, no or off turns the monthly quota check off |
BEEZI_COPILOT_CLI | copilot | The Copilot binary the quota check starts, when copilot is not on the PATH hooks inherit |
BEEZI_STATUSLINE_SILENT | Unset | 1 keeps the status line capture but shows nothing from Beezi, including the badge |
BEEZI_DEBUG | Unset | Any value makes Beezi's scripts print the raw error text |
COPILOT_HOME | ~/.copilot | Read only: where Copilot keeps its files |
6. Availability
The plugin is free to install. Reporting availability depends on your Beezi workspace:
- Live tracking: new sessions are reported automatically.
- Audit mode: the one-time history import is available, but new sessions are not tracked live.
- Off: analytics reporting is unavailable for the workspace.
/beezi-status shows each account's tracking as live, audit mode or off. The mode is a Beezi workspace setting, not something to fix on the machine. In a workspace that is not on live tracking, reports already queued on the machine are kept for 3 days and then removed.
Some workspaces accept reports only from repositories connected to Beezi. The history import and /beezi-sync then report how many reports were skipped because their repository is not connected. Connect the repository to the appropriate Beezi project if its work should be included.
Use /beezi-sync when sessions are missing because hooks did not run or reporting was interrupted. It checks what Beezi already has before uploading, so running it again never uploads the same data twice. It does not reset the one-time initial import, and it is unavailable in a workspace in audit mode.
If sync leaves sessions for a later run, read the explanation. A delivery backlog, unavailable coverage information, or saved progress that does not match Beezi's records can prevent a safe upload; those sessions stay eligible for the next run. If the output says the portal does not support /beezi-sync yet, your Beezi server needs an update; no history is lost.
7. Privacy & Credential Storage
What Beezi Receives
- Model names and token counts (input, output, reasoning, cache read and write), the peak and final size of the context window, AI credits and premium requests, and the number of calls routed through Auto.
- Counts of calls that rewrote Copilot's prompt cache and of model switches, the number of context compactions, and the AI credits those calls used.
- Tool-call counts by category, an estimate of result size, and the names of the MCP servers, skills and plugins used. Per tool, how many calls ran and failed, by kind of failure.
- Durations and an activity timeline (working, planning, waiting for you, idle), and for the main agent the time to first token, call duration, the model's context window, and why a turn was aborted, when Copilot records them.
- Lines added and removed, files changed, and how many changed files have each extension.
- The branch, and the
originremote with credentials stripped, or a folder-name label. - Copilot's session name, and the ID, type and name of any subagents.
- Whether the repository has project instruction files, how many lines each has, and each file's path inside the repository. Only
.github/copilot-instructions.md,AGENTS.md,CLAUDE.mdandGEMINI.mdare checked; their contents are not sent. - Which client created the session (
cli,app,vscodeorvscode-agent-host) and its version. - Your Copilot plan and the GitHub account the session ran under, as the lowercase
host/loginidentity. No email is sent. - Your monthly premium-request quota as Copilot reports it, sent only to the Beezi workspaces your GitHub account works for.
- When a turn fails: the error class, type, code and status, when it happened, and Copilot's error message, cut to 1,000 characters.
- Your time zone, and, as request headers, this machine's host name, its Beezi sign-in client ID and the plugin version, which Beezi uses to name the machine in your list of linked machines.
When several Beezi accounts are linked on the machine, each linked account receives these reports for the workspaces its rules choose.
Session names can contain your text. When Copilot has not named the session, the plugin uses the start of your first prompt, cut to 200 characters, with anything that looks like a secret or a file path removed. Removal of arbitrary sensitive text is not guaranteed. Error reports can also contain text from Copilot's error messages.
Other Network Requests
- Update check: at session start, at most once an hour, the plugin reads the published version from the Beezi marketplace manifest on GitHub.
- Crash reports, only if you turn them on: the plugin, Copilot and Node versions, your OS, OS version and CPU type, the plugin file and line that failed, the error's name, code and HTTP status, your sign-in state, and how many times and when it happened. With Correlate, a random installation ID ties them to your Beezi account. They never carry your code, prompts, repository names or any path outside the plugin.
What Never Leaves the Machine
The plugin reads local session records to derive reports. It does not upload:
- Your prompts, apart from the session-name fallback described above.
- Your code, file contents, tool arguments, command text or tool results.
- Your GitHub or Copilot tokens.
- Full local file paths as repository or folder identifiers.
The plugin writes nothing in Copilot's folder except the status line setting, and only when you turn the status line on.
Credential Storage
| Platform | Where the Beezi sign-in is stored |
|---|---|
| macOS | macOS Keychain |
| Linux | The system keyring (Secret Service), when available |
| Windows | Windows Credential Manager; a file encrypted for your Windows account (DPAPI) if Credential Manager is unavailable |
| Fallback | A file only your user account can read, under BEEZI_COPILOT_HOME, when no system secret store is usable; this file is not encrypted |
Each linked Beezi account has its own credential entry, and /beezi-status shows where each one is stored. The Copilot plugin uses its own credential namespace (beezi-copilot) and its own state folder (~/.beezi-copilot), separate from the Beezi plugins for Claude Code and Codex, so the plugins never share queues or sign-ins. A custom BEEZI_COPILOT_HOME gets its own credentials. Logging out removes the local credentials even if the server-side unlink cannot be completed.
8. Troubleshooting
Nothing Is Being Tracked
Problem: Sessions run but no analytics appear in Beezi.
Solution:
- Run
/beezi-statusand confirm the account is linked, the sign-in is OK, and Tracking showslive. - Check the Hooks and Watcher lines. Hooks that were never seen together with a running watcher is fine; the watcher captures the sessions. If hooks were never seen and the watcher is not running, sessions are not being captured: restart Copilot.
- If hooks stay silent, check that
disableAllHooksis not on in Copilot'ssettings.jsonand that your organization does not allow managed hooks only. In VS Code, check that agent hooks are enabled in a trusted workspace. - Check the This repo, This folder or Here line: the current folder may be set to not tracked, or waiting for you to choose a workspace.
- Run
/beezi-syncto upload sessions that were missed.
Session Start Says the Machine Is Not Linked
Problem: Copilot shows ⚠ Beezi: this machine is not linked — analytics are NOT being tracked. Run /beezi-login to link it.
Solution: Run /beezi-login. If you logged out of every account, this is expected.
A Command Refuses to Run in This Session
Problem: /beezi-login, /beezi-logout, /beezi-settings or /beezi-sync stops with Beezi: this session answers questions without you (autopilot or questions turned off), so … cannot run in it.
Solution: Switch back to interactive mode (Shift+Tab or /permissions default), then run the command again.
If the message says Beezi cannot write to a folder, the Copilot sandbox may be on. Allow writes to that folder in /sandbox, or run the command outside the sandbox.
Commands Fail With a Node Error
Problem: A command exits immediately, reports that node was not found, or Copilot shows Beezi's hooks as failed.
Solution: Run node --version and confirm Node 13.2 or newer is on the PATH Copilot uses. Restart Copilot after installing Node or changing PATH.
Behind a TLS-inspecting proxy, set NODE_EXTRA_CA_CERTS to a PEM file with your company's root certificate, or NODE_USE_SYSTEM_CA=1 (Node.js 22.19 or newer, or 24.6 or newer), in the environment Copilot starts from. The plugin does not apply proxy settings such as HTTPS_PROXY; on a network that only allows traffic through a proxy, uploads wait in the queue, and /beezi-status shows them.
Token Detail Shows Session Totals Only
Problem: /beezi-status shows session totals only — per-call detail needs Node.js 22.13 or later on the PATH Copilot uses.
Solution: Install Node.js 22.13 or newer on the PATH Copilot uses. Sessions that already started keep their mode. If it shows that token detail is on hold because this Copilot version changed its usage database, update the Beezi plugin when a newer version is published.
Sign-In Does Not Complete
Problem: The browser does not open, the sign-in times out, or you work over SSH, in a Codespace, a dev container or a VS Code Remote window.
Solution: Run /beezi-login again and use the paste-back sign-in: open the printed link on any device, sign in, then paste the full address from the browser's address bar within 10 minutes. If you need to finish later, run /beezi-login followed by the pasted address.
If the sign-in cannot reach Beezi, check your connection; a sandboxed session may block the network. A failed sign-in never removes an earlier authorization.
/beezi-login Says the Machine Is Already Linked
This is not an error. The login continues: it refreshes the captured plan and resumes any unfinished history upload.
If you meant to add a different account, the browser signed in as the account it was already signed in to. Sign out of Beezi in the browser, or use a private window, and run /beezi-login again.
The Machine's Authorization Was Rejected or Must Be Renewed
Problem: Copilot shows ⚠ Beezi: this machine’s link was rejected — analytics are NOT being tracked. Run /beezi-login to authorize it again., or /beezi-status says the authorization must be renewed.
Solution: Run /beezi-login and sign in as that account. You do not need to log out first. Until then, that account's reports are held on the machine; other linked accounts are not affected.
If Beezi says it is renewing this machine’s authorization or that authentication is temporarily unavailable, wait. Your saved authorization is untouched, and Beezi retries on its own.
The Account Does Not Have Access
Problem: Copilot shows ⚠ Beezi: this account does not have access here — analytics are NOT being tracked.
Solution: Ask your Beezi administrator about your seat or workspace access. Signing in again does not change it.
The Copilot Plan Is Unknown
Problem: Copilot shows Beezi: your Copilot plan is unknown. Tell Beezi in /beezi-settings., or analytics show an outdated plan.
Solution: Run /beezi-settings refresh. If the plan cannot be read from Copilot, choose it from the list.
If the terminal setup warns that your shell sets COPILOT_GITHUB_TOKEN or GITHUB_TOKEN, Copilot hides that token from plugins, so Beezi cannot tell which GitHub account it belongs to. Export it as GH_TOKEN instead.
No Beezi Tools Available
Problem: Copilot cannot find Beezi's MCP tools, so /beezi-analytics does not work.
Solution:
- Run
/mcpand confirm the Beezi server is listed, then/restart. After a fresh sign-in, the tools can take about 15 seconds to appear. - If
beezi_statusis the only Beezi tool, no account is available to read from. Run/beezi-status; if it says not linked, run/beezi-login. - If you are linked but the analytics tools are still missing, ask your Beezi administrator whether personal analytics are enabled for the deployment.
If a Beezi tool call fails with an authentication error, run /beezi-login and retry.
Analytics Show the Wrong Workspace
Problem: The analytics summary shows figures from a different Beezi workspace than you expected.
Solution: The summary reads from the default account, and for an account in several workspaces it names the workspace it read from (Beezi: reading from …). Run /beezi-analytics with a workspace name to read another workspace, or /beezi-settings account to switch the default account. Every linked account still receives this machine's analytics.
Copilot Asks Where a Folder's Analytics Go
Problem: At session start, Copilot asks where analytics for the current repository or folder go, or says Beezi is holding this folder's analytics until you choose a workspace.
Solution: Answer the question with one or more workspaces, or choose not to track the place. To decide later, run /beezi-settings rules. Held analytics are sent once you choose, and expire after 3 days if you never do. To stop being asked for new places, change the New folders default in /beezi-settings new-folders.
The History Import Has Already Been Used
Problem: The login says Beezi already has the history for this workspace — the one-time import has been used and cannot run again.
Solution: This is final. Use /beezi-sync to repair missing reporting in a workspace with live tracking.
/beezi-sync Says Uploads Are Not Available
Problem: /beezi-sync says the workspace is in audit mode, or that uploads are disabled because the audit period has ended.
Solution: These are Beezi workspace settings. Upgrade the workspace plan in the Beezi portal to track new sessions.
Some Past Sessions Were Not Uploaded
Problem: The history import or sync reports skipped or deferred sessions.
Solution: Read the summary for the reason:
- Not connected: the repository is not connected to Beezi in a workspace that requires it.
- Not tracked or no rule: a rule excludes the repository or folder, or it has no rule yet; add one with
/beezi-settings rules. - Still active: sessions changed in the last 30 minutes are left for live capture.
- Too large or no folder: session files over 64 MB are not read, and sessions that recorded no working directory cannot be matched to a repository.
- Deferred: sessions whose records do not line up with what Beezi holds are left alone to avoid double counting; they stay eligible for a later
/beezi-sync.
Reports Are Not Uploading
Problem: Copilot shows Beezi: some analytics reports from this machine are not uploading. Run /beezi-status for details.
Solution: Run /beezi-status and read the account's Delivery line, which shows waiting and refused reports and the last error. Network failures are retried automatically at later checkpoints and session starts. A refusal by Beezi is different from a network failure: keep its exact message for support. Queued reports that are never delivered are removed after 30 days.
The Installer Cannot Install or Update the Plugin
Problem: The installer stops with Couldn't install Beezi., Couldn't update Beezi. or Couldn't fetch the Beezi plugin.
Solution: Read the Copilot output the installer shows. When the cause is a file-system access error, the installer explains which folder is blocked and how to fix it:
- macOS and Linux: a folder owned by another user or not writable. Run the
sudo chown -R …orchmod -R u+w …command it prints, then run the installer again. - Windows: files in use by Copilot or by Beezi's own processes. The installer lists them and offers to close them; otherwise close every GitHub Copilot window and terminal. For read-only or foreign-owned files, it prints
attrib,takeownandicaclscommands to run.
If that still fails, follow the installer's Do it by hand steps: copilot plugin marketplace update beezi-copilot, the install or update command again, and if needed copilot plugin uninstall beezi@beezi-copilot followed by copilot plugin install beezi@beezi-copilot.
Other installer messages:
This Copilot CLI can't install plugins from the command line.Update the Copilot CLI (copilot update), then run the installer again.git is required.Install git (on macOS,xcode-select --install), then run the installer again.Can't reach github.com/Beezi-AI/beezi-copilot-plugin.Check your internet connection or proxy.No terminal available to confirm.Run the installer again with--yes, then run/beezi-loginin Copilot.This installer needs bash.Pipe the script tobash, notsh.Beezi is installed but turned off.Turn it on withcopilot plugin enable beezi@beezi-copilot, or in VS Code under Extensions → @agentPlugins → beezi → Enable.VS Code hasn't installed Beezi yet.Check that Copilot Chat is signed in and that plugins are allowed, then run the installer again.
9. Getting Help
Contact hello@beezi.ai with:
- Your Beezi tenant ID.
- The command you ran and its exact output, including the
/beezi-statusoutput. - Your operating system, Copilot surface and version (Copilot CLI, GitHub Copilot app or VS Code), Node version, and Beezi plugin version.
- Any error message or correlation ID returned by Beezi.
Do not include authentication tokens or credential files.