AirCode Ø for VS Code
This extension uses an existing AirCode Ø instance from VS Code Desktop. It adds
connection and project views, an instance-wide Sessions tree, a conversation
panel, and explicit editor context commands. The instance runs the sessions;
the extension does not install or launch a provider CLI.
Install
Install aircode-vscode-desktop-0.1.5.vsix from Extensions → … → Install from
VSIX… in VS Code Desktop 1.90 or later. Reload the window when prompted.
Once the new Marketplace listing is available, its extension ID is
aircodezero.aircode-vscode-desktop.
For development, open vscode/ as the VS Code workspace, run npm install,
then launch the Run AirCode Ø extension configuration. npm run package writes a local
VSIX under output/vscode/ at the repository root.
Connect and browse the instance
- Open the AirCode Ø activity-bar view in VS Code. A workspace folder is not
required.
- Run Set instance and enter the exact instance origin, such as
https://instance.example. HTTPS is required, except for HTTP on loopback.
An already-running instance on the same extension host can use
http://127.0.0.1:7860; the extension does not start the instance.
- If access protection is enabled, open the instance in a browser. In
Settings → Device pairing, select Generate pairing QR code, then
Copy one-time link. Run Pair this instance in VS Code and paste the
full link. A raw pairing code also works. The extension checks that the
link names the configured instance. Browser login and any Turnstile
challenge happen on the instance site.
- The Connection view lists the instance's projects. The Sessions view lists
running sessions and the first page of ended sessions across all projects.
Select a session to open its conversation; use Load older sessions to
reach the rest of the history.
The bearer is stored in VS Code SecretStorage, scoped to the exact instance
origin. Disconnect removes the selected origin, optional folder links and local token,
and asks the instance to revoke the paired device. If the instance is
unreachable during disconnect, revoke that device later in its settings.
In an SSH or container window, the extension runs in the remote extension
host. The origin must be reachable from there.
Sessions and editor context
Use New session in the Sessions view, choose a project on the instance, then
choose Harness, Model, Effort and Permissions from its live engine catalog.
You can also select a project in Connection to start there. A local folder is
never required for launch, chat or resume. The session opens in a conversation
panel. An ended session is read-only until Resume session starts a
continuation in its still-available project.
The conversation panel shows transcript events and pending questions. Send a
message or answer a question there. It reloads the named transcript after a
window restart or network interruption. Live sessions refresh while the view
is visible. History loads in pages of 80; Load older sessions reaches the
remaining entries, and Refresh sessions reloads the first page.
To send editor context, first open a VS Code folder and use Link folder for
editor context to associate that folder with the session's project. The
optional links are under Editor folder links in Connection. Each root of a
multi-root workspace needs its own explicit link; local and server paths may
differ. Then open a live session and run Attach selection or Attach current
file from the editor menu or Command Palette. Review the
exact text in the preview, then confirm. The attachment is added to the next
message, including unsaved edits at the time of preview. The extension refuses
untitled files, files outside the linked folder, binary text and text above
16 KiB. It never copies the whole worktree automatically.
Troubleshooting
- Pair this instance to continue: the bearer is missing, expired or
revoked. Create a new one-time code in the instance's Device pairing page.
- Cannot reach instance: check network access from the VS Code extension
host, including SSH or container hosts. The extension does not ignore TLS
errors; fix the certificate or trusted CA at the host.
- Project changed on the instance: reopen the session from Sessions. The
extension checks the server path and directory identity before writes, so a
removed or replaced project cannot silently inherit a session action. If
you use editor context, relink that folder too.
- A message or launch was not confirmed: reconnect and refresh the session
before retrying. A launch uses an idempotency key so an uncertain response
cannot deliberately start a duplicate session.
- No editor attachment: open a live session, link the editor folder to that
session's project, select text or an eligible file, and check the 16 KiB limit.
Validation scope
npm run typecheck, npm test, npm run test:host, and npm run package are
the package controls. The host test uses a local API fixture and an actual
Extension Development Host; it does not prove connectivity to a particular
owner instance, provider, remote host or native device.
With the instance owner's explicit approval, run
npm run test:live -- https://instance.example. It launches a separate Extension Development Host and
prompts for a fresh one-time pairing code on stdin. It pairs through the
extension, reads the project and session lists, then
revokes the paired device and removes its local bearer. It never launches a
session or provider. The code is held in memory for that run and is not written
to settings, logs or the workspace.