Rytora Composer
Rytora Composer is the official AI extension for Visual Studio Code: multi-file edit, Tab autocomplete, Cmd+K inline edit, and Plan / Agent / Chat modes — with one-click publish to Vercel/Railway. Pro+ unlocks all AI capabilities.
Install
Three install paths — pick whichever fits your environment:
- VS Code Marketplace — open Extensions (Ctrl+Shift+X), search Rytora Composer, click Install. Or via CLI:
code --install-extension rytora.rytora-code - Open VSX — for editors based on the VS Code OSS distribution. Same extension ID:
rytora.rytora-code - Manual VSIX — air-gapped / behind corporate proxy: download the
.vsixfrom the install page and runcode --install-extension rytora-code-<version>.vsix
Requirements
- VS Code 1.85+ (or VS Code Insiders / any 1.85+ compatible editor with Open VSX support)
- Network access to
buildlabs.rytora.ai(AI features call our API) - A Rytora BuildLabs account — free to sign up, Pro+ to use AI features
Sign in with Rytora BuildLabs
The extension uses your existing Rytora BuildLabs account. AI features (Tab, Cmd+K, Composer, Chat) require Pro+.
- Open the Rytora panel in the Activity Bar (or run command
Rytora: Sign infrom the Command Palette) - Your default browser opens to
https://buildlabs.rytora.ai/code/auth - Complete sign-in (or sign up if needed)
- The browser redirects back to VS Code automatically via the URL handler the extension registers
- Token is stored in your OS keychain (Keychain on macOS, Credential Manager on Windows, libsecret on Linux)
Don't have an account? Sign up free. Pro+ starts at $25/month with unlimited Tab + Auto Mode + credits for premium models.
Tab autocomplete
Inline AI completions appear as ghost text while you type. Press Tab to accept, Esc to reject.
- Triggers automatically 200ms after you stop typing
- Multi-line completions with correct indentation
- Context: ~20 lines before cursor + filename + language
- Cache: same prefix asked twice doesn't hit the API
- Toggle:
Rytora: Toggle Tab Completions
Pro+ only. Free users see no inline suggestions.
Cmd+K inline edit
Select code → press ⌘K (macOS) or Ctrl+K (Win/Linux) → describe the change.
- Floating prompt input next to your selection
- History accessible with ↑/↓
- Streaming diff inline (added in green, removed in red)
- ⌘↵ accept · Esc reject · ⌘R regenerate
Auto-routed: short selections (<50 lines) use Haiku 4.5; longer use Sonnet 4.6.
Composer (multi-file edit)
Open Composer from the Activity Bar. Describe changes that span multiple files; the AI plans, edits, and shows diffs per file.
@-mentions
Type @ in the input to attach context:
| Mention | Use case |
|---|---|
@<filename> | Include a specific file |
@<symbol> | Include a function/class by name |
@selection | Include current editor selection |
@cursor | Include code around your cursor |
@diagnostics | Include all errors/warnings |
@git | Include diff vs HEAD |
@docs | Include workspace docs |
@web | Search web for context |
Model selection
Default is Auto (free, no credits). Switch to Sonnet/Haiku/Opus via the dropdown — manual selection drains your credit pool.
Accept / reject
Each edit appears as a card with diff preview. Accept individually or batch all. Optional: enable auto-branch in settings to create agent-edits-{timestamp} git branch before applying.
Codebase indexing
Tree-sitter parsers extract symbols (functions, classes, exports) from ~100 languages. Embeddings stored locally for semantic retrieval.
- Initial scan: ~30s for 1k files on SSD
- Incremental: <1s per file save (file watcher)
- Storage:
.rytora/index.dbin your workspace (~10MB per 1k files) - Tier 1 (built-in): TypeScript, JavaScript, Python, Go, Rust, Java, C/C++, Ruby, PHP
- Tier 2 (lazy load): C#, Swift, Kotlin, Scala, Dart, Lua, Bash, CSS, HTML, YAML, JSON, TOML, SQL, Haskell, Elixir, Erlang, OCaml, Clojure, F#, R, Julia, Zig, Nix, Elm
- Tier 3 (on demand): Vue, Svelte, Astro, GraphQL, Terraform, HCL, Dockerfile, Vim
- Fallback: text-chunking by line count + indentation heuristic for any other language
Publish to Vercel/Railway
Run Rytora: Publish or click the rocket icon. Rytora Code detects your framework automatically:
Frontend / SSR → Vercel
Next.js · Nuxt · Remix · SvelteKit · Astro · TanStack Start · Qwik · SolidStart · Vite (React/Vue/Svelte/Solid/Preact) · Angular · Static HTML
Backends → Railway
Node (Express/Fastify/NestJS/Hono/Koa) · Python (FastAPI/Flask/Django/Litestar) · Go (net/http/Gin/Fiber/Echo) · Rust (Axum/Actix/Rocket) · Ruby (Rails/Sinatra) · Java (Spring) · Kotlin (Ktor) · .NET · PHP (Laravel/Symfony)
Container (Dockerfile detected) → Railway or Fly.io
If Prisma/Django/Rails detected, PostgreSQL is auto-provisioned via ${{Postgres.DATABASE_URL}} reference.
Deployment history persists in .rytora/deployments.json. Re-publishes reuse the same Vercel project / Railway service.
Settings
Open ⌘, and search "rytora". Notable settings:
rytora-code.tab.enabled— toggle Tab autocompleterytora-code.tab.debounceMs— debounce time (default 200ms)rytora-code.cmdK.heuristicCutoffLines— Haiku/Sonnet routing thresholdrytora-code.composer.defaultModel— Auto / Sonnet / Haiku / Opus / Kimirytora-code.composer.autoBranch— git auto-branch before editsrytora-code.indexing.enabled— toggle codebase indexingrytora-code.indexing.embeddingProvider— Voyage / Nomic / OpenAIrytora-code.updates.channel— stable / beta / alpharytora-code.environment— production / staging / local (Rytora BuildLabs API)
Keybindings
| Action | macOS | Win/Linux |
|---|---|---|
| Cmd+K inline edit | ⌘K | Ctrl+K |
| Open Composer | ⌘L | Ctrl+L |
| Accept Tab suggestion | Tab | Tab |
| Reject Tab suggestion | Esc | Esc |
| Accept word only | ⌘→ | Ctrl+→ |
| Accept Cmd+K edit | ⌘↵ | Ctrl+↵ |
| Reject Cmd+K edit | Esc | Esc |
| Regenerate Cmd+K edit | ⌘R | Ctrl+R |
| Send Composer message | ⌘↵ | Ctrl+↵ |
Troubleshooting
Tab not appearing
- Check status bar — does it say "Tab Pro+"? You need Pro+ plan
- Open settings, ensure
rytora-code.tab.enabledis true - Type at least 3 characters on a line (default minimum)
- Wait ~200ms after typing (debounce)
Sign-in browser doesn't redirect back
- Verify protocol handler is registered: macOS settings → Default Web Browser; Windows: Default Apps → Protocol
- Try manual sign-in via API token in Settings → Rytora Code → Auth
Publish fails detection
- Manually choose strategy: command
Rytora: Publish→ "Choose strategy" - Verify your project has a recognized framework signature (see supported list)
- Container fallback: add a
Dockerfileat the project root
Composer agent loop hangs
- Click Stop button in Composer panel (sends AbortSignal to API)
- Check
rytora-code.composer.maxIterationssetting (default 25) - Open Output panel (
View → Output) and select "Rytora Composer" channel for logs
Privacy
- Microsoft telemetry endpoints fully disabled in this fork
- Rytora telemetry is opt-in (default off, prompted in welcome flow)
- Codebase indexing is local — embeddings (if cloud provider chosen) only send chunks per request, never your full codebase
- AI requests carry only the context you explicitly include (selection / @-mentions / files referenced by Composer)
- Your authentication token is stored in your OS keychain (encrypted at rest)
- Code never leaves your machine unless you invoke an AI feature
Changelog
See the changelog page for full release notes.
v1.0.0-beta.1 — 2026-05-03
- Initial beta release
- Tab autocomplete, Cmd+K inline edit, Composer multi-file
- Codebase indexing with Tree-sitter (~100 languages)
- Publish to Vercel/Railway with auto-detection of 25+ frameworks
- Sign in with Rytora BuildLabs via URL handler
Support
Email: code@rytora.ai · Discord: discord.gg/rytora