labd
Your Dev Labs lab assistant, in the editor.
labd reads the screen you are actually looking at — the open file, what you have
selected, and the errors the editor is reporting — and answers the way a good lab
demonstrator would: what is actually happening, what to change, and the concept
behind the fix. It is the same assistant that sits beside every page on
learn.thedevlabs.io and runs in your terminal as
labd, so it behaves the same in all three places — and what it remembers about
you is shared between them.
What it does
- Explain this file — what it is for, how it is put together, and what a
newcomer would trip over
- What's wrong here? — walks through the problems the editor is reporting:
what each one means, what caused it, and how to fix it
- How would you improve this? — on the whole file, or just what you selected
- Ask anything —
⌘⌥L (Ctrl+Alt+L) from anywhere
When the answer depends on code labd has not been shown, it reads it: other
files, directory listings, and a workspace search. All of that runs locally in
the editor, never on a server. It also sees your branch and recent commits, your
project's AGENTS.md or CLAUDE.md, and the names of any skills it defines.
When labd changes your project
Sometimes the answer is a change rather than a paragraph, so labd can edit,
create, move and delete files, and run commands — and it explains what it did
and why, because that is the part you keep.
Edits land unsaved. A change to a file is applied in the editor and left
dirty: you see it, the gutter shows what moved, and it only reaches disk when you
save. A move or a delete is different — those happen on disk — which is why
every answer that changed files carries a put back control that reverts
the whole turn in one go, moves and deletes included. Anything you have edited
since is left alone and listed, never overwritten.
Commands are the one thing put back cannot undo. A command runs in your
own shell at the project root; whatever it did has already happened. What you
get instead is the command shown in full before it runs, a timeout, and the
complete output in the labd - commands output channel.
You decide how much it asks. The labd.mode setting is per workspace, so a
choice made in a scratch project doesn't follow you into your coursework.
| Mode |
What happens |
ask |
labd asks before it changes a file and before it runs anything. Nothing happens without your say-so. |
auto (default) |
labd changes files on its own — every answer can be put back in one go — and still asks before running a command. |
agent |
labd changes files and runs commands on its own. A command can do anything your own terminal can, and cannot be put back. |
Switch from the bar under the composer, or in settings.
Some things are refused outright, whatever the mode and whatever labd is asked:
writing to anything holding credentials (.env, keys, certificates — labd only
ever sees which keys are set, never their values, so a write would destroy them),
.git/, dependency and build directories, anything outside the folder you have
open, and commands that need sudo, deploy, publish, git push, wipe a disk, or
read a credentials file.
Getting set up
Run labd: Connect to The Dev Labs. It shows a short code; approve that code
at learn.thedevlabs.io and the editor is connected to your account, answering on
your monthly allowance. The token is stored in VS Code SecretStorage — never in
settings.json, which syncs and turns up in screenshares.
Commands
| Command |
What it does |
labd: Ask labd |
Ask a question about the current screen (⌘⌥L) |
labd: Explain this file |
Explain the open file, or the selection |
labd: What's wrong here? |
Diagnose the reported problems (⌘⌥E) |
labd: How would you improve this? |
Suggest improvements |
labd: Open a chat in an editor tab |
A second chat, beside a file |
labd: Connect to The Dev Labs |
Pair this editor with your account |
labd: Disconnect |
Sign out and revoke this editor's token |
Settings
| Setting |
Default |
What it is |
labd.mode |
auto |
How much labd does on its own: ask, auto or agent. See above. |
labd.checkpoints |
true |
Keep a snapshot of every file labd changes, so a whole answer can be put back from the chat. Held in the editor's own storage, never in your project. |
labd.commandTimeoutSeconds |
120 |
How long a command labd runs may take before it is stopped. |
labd.serverUrl |
https://agent.thedevlabs.io |
The labd agent server. Change only when running one locally. |
Privacy
The chat panel holds no credentials and makes no network calls of its own — the
extension host owns the token and every request, which is why the panel's content
security policy forbids outbound connections entirely.
What is sent when you ask a question: the lines of the open file you can see on
screen (not the whole file), your selection, the errors the editor is reporting,
the names of your other open files, your branch and last few commits, your
project's conventions file, and anything labd reads or runs while answering.
Nothing is sent unless you ask something.
Made by The Dev Labs.