
TixAgent — VS Code Extension
AI-powered chat inside VS Code with secure, web-based authentication and
configuration. The extension owns the chat interface and editor integration;
the TixAgent Next.js web application (tixagent/) owns accounts, sessions,
and all configuration. This folder contains only the extension — the two
components are developed and shipped separately.
Features
- Agent chat workspace: task execution with live stages, plans, and tool activity
- Sign Up / Sign In through the browser with a PKCE-secured return to VS Code
- Dashboard-owned setup (OpenRouter API key, model selection) via a
configuration handoff — no config forms inside the extension
- 19 allowlisted local tools: workspace search, surgical file patches, editor
integration, diagnostics, terminal execution with risk approvals, test
runners, and git inspection
- Diff review with Accept/Reject plus session undo for agent changes
- Selection actions (
explain … readability), slash commands (/fix,
/test, …), @file context mentions, and click-to-open file references
- Working modes (beginner/intermediate/expert × teach/guide/do/review),
reasoning modes, model selection, and 4 autonomy levels
- Static code review and security scan that run fully locally
- Multimodal attachments (images with thumbnails, PDF, audio, video) forwarded
to capable models; syntax-highlighted code blocks with Copy and Apply
- Conversation and task history, project memory, secret redaction, and
.gitignore-aware context with honest budget limits
- Secure session storage (VS Code SecretStorage), logout, and expiry handling
- Roboto typography with Font Awesome icons, light/dark theme support
Requirements
- VS Code
^1.139.0
- Node.js 20+ for development
- The TixAgent web app for sign-in and chat (defaults to
https://tixagent.vercel.app; see below when it is not running)
Develop
npm install
npm run compile
code --extensionDevelopmentPath="$PWD"
Useful scripts: npm run watch, npm run test:unit (offline unit tests),
npm test (VS Code integration tests), npm run package (production bundle),
npm run package:vsix (pack a distributable .vsix).
Install the packaged extension
npm run package:vsix
code --install-extension tixagent-0.0.1.vsix
To point a packaged build at a live server out of the box, bake the default
URL in at package time (the setting below still overrides it per user):
TIXAGENT_BUILD_DEFAULT_URL="https://tixagent.vercel.app" npm run package:vsix
Connecting to your server (web app URL)
The extension finds your TixAgent web app (sign-in, chat, configuration)
through this precedence — first match wins:
- VS Code setting
tixagent.webAppUrl — File → Preferences → Settings,
search TixAgent Web App URL. This is the permanent home for your URL;
it applies immediately without reinstalling.
TIXAGENT_WEB_APP_URL environment variable — for managed machines
and CI.
- Release default baked into the
.vsix (only when packaged with
TIXAGENT_BUILD_DEFAULT_URL).
https://tixagent.vercel.app — the production deployment.
When the chat shows a connection banner, it names the URL it tried: fix that
source (usually the setting) and press Retry.
Live-server checklist (web app side): EXTENSION_CALLBACK_HOSTS must include
your extension id (defaults cover tuyizereibrahim.tixlagent plus the
pre-rename tixagent.tixagent and TuyizereIbrahim.tixagent ids);
EXTENSION_CALLBACK_SCHEMES covers VS Code,
Insiders, Cursor, Windsurf, VSCodium, and Positron by default; set
NEXT_PUBLIC_APP_URL to your public URL when serving behind a proxy.
Settings
| Setting |
Default |
Purpose |
tixagent.webAppUrl |
https://tixagent.vercel.app |
Base URL of the TixAgent web app. The TIXAGENT_WEB_APP_URL environment variable overrides nothing — the setting wins, the variable is the fallback. |
No account, API-key, or model settings live here by design.
Architecture
src/extension.ts — activation, 30 commands, URI handler wiring
src/agent/ — orchestrator (tool-call loop), turn runner, transport,
modes, prompts, model routing, local analyzers, change tracking
src/tools/ — allowlisted workspace/file/editor/terminal/test/git tools,
permission-checked executor, patch + classifier utilities
src/context/ — project intelligence, budgeted context builder, secrets
src/memory/ — conversations, tasks, modes, autonomy (local only)
src/permissions/ — autonomy policy and approval dialogs
src/providers/ — sidebar webview provider and diff-preview provider
src/handlers/ — browser-callback routing and webview message bridge
src/services/ — auth, session, configuration, chat, and HTTP client
src/storage/ — SecretStorage persistence
src/config.ts — environment-independent URL builders and callback parser
media/ — chat webview UI (vendored Font Awesome, Roboto, and
highlight.js work fully offline)
resources/ — Activity Bar icon and logo assets
docs/api-contract.md — the extension ↔ web integration contract the
Next.js backend must implement
Local capabilities (tools, diff review, static analysis, terminal, tests)
work today. Model-driven steps call the real backend endpoints in
docs/api-contract.md and fail visibly with retry guidance when the web app
is unreachable. Nothing is mocked or simulated.
License
MIT — see LICENSE.
| |