Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>LiyaAI Coding AgentNew to Visual Studio Code? Get it now.
LiyaAI Coding Agent

LiyaAI Coding Agent

liyalabs

|
21 installs
| (0) | Free
AI-powered coding assistant for VS Code — powered by LiyaAI
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

LiyaAI Coding Agent for VS Code

AI-powered coding assistant for VS Code — powered by LiyaAI Platform.

Why LiyaAI?

LiyaAI is not just a model provider — it's an intelligent AI platform with:

  • 🚀 Performance Middleware — Smart caching, context optimization, and request batching
  • 💰 Cost Optimization — Up to 65% cost savings with intelligent token management
  • 🔄 Multi-Model Support — Access Claude, GPT-4, and other models through unified API
  • 🎯 Custom Assistants — Pre-configured assistants with domain-specific instructions
  • 📊 Usage Analytics — Track costs, tokens, and performance per project
  • 🔒 Enterprise Security — API key management, audit logs, and data privacy

Features

  • 🤖 AI Chat Panel — Sidebar chat with your custom coding assistants
  • 🔧 Agentic Tool Execution — AI can read, write, and edit files autonomously
  • 🔍 Code Search — Fast grep and file search (ripgrep/fd powered)
  • 📝 Git Integration — Status, diff, and log commands
  • 💻 Terminal Commands — Run commands with safety checks; auto-executed in Accept mode (dangerous patterns always confirmed)
  • 💰 Real-time Cost Tracking — See token usage and costs per session
  • 🛡️ Security First — Workspace sandboxing, command blocklist, sensitive file protection
  • 🧩 MCP Support — Connect to any Model Context Protocol server
  • 🤝 Sub-agents — Delegate tasks to specialized built-in agents
  • 🪝 Hook System — Automate actions on prompt submit, tool use, and stop events
  • 🔐 Permission Modes — Fine-grained tool access control (plan / default / acceptEdits / bypassPermissions)
  • 🧠 Project Memory — Persistent workspace memory via LIYAAI.md with periodic re-injection on long tool chains (hash-diff + adaptive cadence), and a plugin-maintained ## 📍 Current live status block
  • 📓 Jupyter Notebook Support — Read and edit .ipynb files directly
  • 🖼️ Image & Screenshot Input — Paste screenshots, pick files via button, or drag-and-drop images into chat
  • ⚡ Auto-compact — Automatic context window management at 85% usage
  • ⏪ Prompt Rewind — Snapshot and revert file changes per message
  • 📎 File Attachments — Attach files to chat via paperclip UI
  • 🛠️ Script Runner — Run custom scripts from .liyaai/scripts/
  • 🌐 Web Fetch Tool — AI can fetch URLs (SSRF-protected)
  • 📈 Analytics — Session and tool-use event tracking
  • 🎙️ Speech to Text — Dictate prompts hands-free using your microphone
  • 🔊 Text to Speech — Have AI responses read aloud automatically
  • 🏷️ Smart Chat History Titles — New chats are titled automatically from the first user message
  • ♿ Accessibility First — Full voice I/O support designed for visually impaired developers

Requirements

  • VS Code 1.85.0 or higher
  • LiyaAI Account & API Key (get one at ai.liyalabs.com)
  • Developer Documentation
  • macOS 12+, Ubuntu 22.04+, Fedora 38+, or Windows 10+

Getting Started

  1. Install the extension from VS Code Marketplace
  2. Click the LiyaAI icon in the Activity Bar (or move it to the right sidebar)
  3. Enter your Backend URL and API Key
  4. Select a coding assistant from your LiyaAI project
  5. Start chatting with your AI coding partner!

Commands

Command Shortcut Description
LiyaAI: Set API Key & Backend URL — Configure connection
LiyaAI: Select Assistant — Choose coding assistant
LiyaAI: New Chat Session Cmd+Alt+N Start new chat
LiyaAI: Focus Chat Panel Cmd+Alt+L Focus chat + mention current line
LiyaAI: Explain Selected Code Cmd+Alt+E Explain code
LiyaAI: Fix Selected Code Cmd+Alt+X Fix code
LiyaAI: Optimize Selected Code Cmd+Alt+O Optimize code
LiyaAI: Add Comments Cmd+Alt+D Add comments
LiyaAI: Generate Tests Cmd+Alt+U Generate unit tests
LiyaAI: Refactor Selected Code Cmd+Alt+R Refactor code
LiyaAI: Insert Line Reference Cmd+Alt+A Insert line reference to chat
LiyaAI: Cancel Current Request Cmd+Alt+. / Escape Cancel ongoing request
LiyaAI: Show Balance — Show account balance
LiyaAI: Open Project Memory — Open LIYAAI.md
LiyaAI: Initialize Project Memory — Create LIYAAI.md
LiyaAI: Create Workspace Config — Create .liyaai/ config folder

Settings

Setting Default Description
liyaai.maxIterations 15 Max iterations for agentic loop
liyaai.autoApplyEdits false Auto-apply file edits
liyaai.showCostPerMessage true Show cost per message
liyaai.enableThinking true Enable extended thinking
liyaai.enablePromptCaching true Enable prompt caching (up to 90% savings)
liyaai.language en Display language (en/tr)
liyaai.autoConnect true Auto-connect on startup

Workspace Configuration

Create a .liyaai/ folder in your project root to customize behavior:

File Description
.liyaai/rules.md Project-specific AI instructions
.liyaai/ignore Files/folders to hide from AI
.liyaai/memory/ Persistent project memory files
.liyaai/commands/ Custom slash commands (.md files)
.liyaai/scripts/ Runnable scripts via run_script tool
.liyaai/output-style.md Customize AI response format and tone
LIYAAI.md High-level project memory (auto-loaded)

Hook System

Configure automated hooks in .liyaai/settings.json:

{
  "hooks": {
    "UserPromptSubmit": [{ "command": "echo 'prompt submitted'" }],
    "PreToolUse": [{ "matcher": "write_file", "command": "lint-check.sh" }],
    "PostToolUse": [{ "matcher": "terminal", "command": "run-tests.sh" }],
    "Stop": [{ "command": "notify-done.sh" }]
  }
}

Hooks can allow, block, or modify tool inputs.

Permission Modes

Mode Description
plan Read-only — no file writes or commands
default Standard — confirms before writes and commands
acceptEdits Auto-applies file edits and runs terminal commands without confirmation (dangerous patterns still require confirmation)
bypassPermissions Fully autonomous (env/user setting only)

Per-tool rules support glob and regex patterns in .liyaai/settings.json.

MCP (Model Context Protocol)

Connect any MCP server in .liyaai/settings.json:

{
  "mcpServers": {
    "my-server": {
      "command": "npx",
      "args": ["-y", "@my-org/mcp-server"],
      "env": { "API_KEY": "..." }
    }
  }
}

Sub-agents

Delegate tasks to built-in specialized agents:

Agent Purpose
code-reviewer Code quality review
debugger Error diagnosis
planner Task decomposition
explorer Codebase exploration
general-purpose Open-ended research

Platform Architecture

┌─────────────────────────────────────────────────────────┐
│                    VS Code Plugin                        │
│  (Tool Execution, Context Collection, Security)          │
└─────────────────────┬───────────────────────────────────┘
                      │ API Request
                      ▼
┌─────────────────────────────────────────────────────────┐
│                  LiyaAI Platform                         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐      │
│  │   Caching   │  │   Context   │  │   Billing   │      │
│  │  Middleware │  │ Optimization│  │   & Usage   │      │
│  └─────────────┘  └─────────────┘  └─────────────┘      │
│  ┌─────────────────────────────────────────────────┐    │
│  │         Custom Assistants (Instructions,        │    │
│  │         Knowledge Base, Tool Permissions)       │    │
│  └─────────────────────────────────────────────────┘    │
└─────────────────────┬───────────────────────────────────┘
                      │
        ┌─────────────┼─────────────┐
        ▼             ▼             ▼
   ┌─────────┐   ┌─────────┐   ┌─────────┐
   │ Claude  │   │  GPT-4  │   │ Gemini  │
   │ Models  │   │ Models  │   │ Models  │
   └─────────┘   └─────────┘   └─────────┘

Platform Support

LiyaAI works on macOS, Linux, and Windows with full cross-platform terminal command handling.

Safe Commands (auto-approved, no confirmation needed)

Platform Commands
Unix/macOS cat, head, tail, ls, pwd, echo, which, wc, file, stat, du, df, grep, find
Windows CMD type, dir, where, findstr, tree, hostname, whoami, ver, systeminfo, tasklist, netstat, sort, fc, comp
PowerShell Get-Content, Get-ChildItem, Get-Item, Get-Location, Get-Process, Get-Service, Test-Path, Select-String
Cross-platform git status/log/diff/branch/show, npm list/ls/view, pip list/show/freeze, node -v, npm -v, python --version

Blocked Commands (always rejected)

Platform Commands
Unix/macOS rm -rf /, rm -rf ~, mkfs, dd if=, chmod -R 777 /, curl \| sh, shutdown, reboot, kill -9 -1
Windows format c:, del /f /s /q c:, rd /s /q c:, reg delete, bcdedit, diskpart, net user
PowerShell Remove-Item -Recurse -Force C:, Format-Volume, Clear-Disk, Stop-Computer, Restart-Computer

All other commands require user confirmation before execution.

Auto-Accept Mode — Dangerous Pattern Filter

Even when Auto-Accept Mode (⚡) is active, the following terminal patterns always prompt for confirmation:

Pattern Example Reason
rm -<flag> rm -rf ./dist Recursive/force deletion
sudo sudo npm install -g Privilege escalation
del (Windows) del /f myfile File deletion
rm / rm /etc/hosts Absolute path deletion
dd of= dd if=/dev/zero of=/dev/sda Disk overwrite
format format c: Drive formatting
shutdown/halt/reboot shutdown -h now System shutdown

Security

  • API keys stored in OS keychain (macOS Keychain, libsecret, Windows Credential Manager)
  • Workspace sandboxing — no access outside project
  • Command blocklist for dangerous operations
  • Sensitive file protection (.env, SSH keys)
  • SSRF protection on web_fetch tool

Development

# Install dependencies
npm install

# Watch mode
npm run watch

# Run extension (F5 in VS Code)

# Package
npm run package

Keyboard Shortcuts

Shortcut (Mac) Shortcut (Win/Linux) Command
Cmd+Alt+L Ctrl+Alt+L Focus Chat Panel
Cmd+Alt+N Ctrl+Alt+N New Chat Session
Cmd+Alt+A Ctrl+Alt+A Insert Line Reference
Cmd+Alt+E Ctrl+Alt+E Explain Selected Code
Cmd+Alt+X Ctrl+Alt+X Fix Selected Code
Cmd+Alt+O Ctrl+Alt+O Optimize Selected Code
Cmd+Alt+D Ctrl+Alt+D Add Comments
Cmd+Alt+U Ctrl+Alt+U Generate Tests
Cmd+Alt+R Ctrl+Alt+R Refactor Selected Code
Cmd+Alt+. / Escape Ctrl+Alt+. / Escape Cancel Current Request

Accessibility — Voice I/O for Visually Impaired Developers

♿ LiyaAI is committed to making AI-assisted coding accessible to everyone — including developers with visual impairments.

LiyaAI includes built-in voice input/output so you can interact with your AI coding assistant entirely hands-free and screen-independently:

🎙️ Speech to Text (STT)

  • Press the microphone button in the chat panel (or use the keyboard shortcut) to start recording
  • Speak your prompt naturally — LiyaAI transcribes your speech and sends it as a message
  • Fully compatible with screen readers; no mouse interaction required
  • Works offline-capable depending on your platform's STT engine

🔊 Text to Speech (TTS)

  • AI responses are automatically read aloud when TTS is enabled
  • Code blocks, file paths, and technical content are spoken in a clear, structured way
  • Pause, resume, or stop playback at any time via keyboard
  • Adjustable speech rate and voice settings

⌨️ Keyboard-First Workflow

All voice features are fully operable via keyboard — no mouse required:

Action Shortcut (Mac) Shortcut (Win/Linux)
Start/stop recording Cmd+Alt+M Ctrl+Alt+M
Stop TTS playback Escape Escape

Screen Reader Compatibility

The chat panel is built with ARIA labels, live regions, and semantic HTML to ensure compatibility with:

  • macOS VoiceOver
  • NVDA / JAWS (Windows)
  • Orca (Linux)

What's New in 0.2.5

Smart Routing — Empty-Response Fallback

  • 💬 No more blank replies — Smart-routing assistants occasionally let a lightweight model spend its turn only on the internal routing-advice call, producing no text. The chat now shows a clear status message instead of an empty bubble, so you always know the turn finished. Pairs with a backend fix that stops the model from replacing its answer with the advice call and guards against ever returning an empty response.

This build also bundles the 0.2.4 improvements below (active-project path disambiguation, selective tool-result masking, edit_file uniqueness recovery).


What's New in 0.2.4

Multi-Repo Path Safety

  • 🛡️ write_file no longer silently writes to the wrong location on basename-only paths — In multi-project workspaces the plugin now scans for matches and: redirects automatically if there's exactly 1 match, throws an Ambiguous file_path error listing candidates if there are multiple, or creates at workspace root only if the file is genuinely new.
  • 🪞 Write confirmation dialog shows the resolved path — The dialog now displays the actual destination path after redirection, so you can visually confirm before accepting.
  • 🎯 edit_file auto-find biases toward the active editor's project — When the same filename exists in multiple subfolders, disambiguation now prefers the file inside the currently open project, preventing spurious old_string not found errors.
  • 🛡️ write_file ambiguity check also uses active-project bias — When multiple matches exist for a basename-only write, the plugin first narrows to the active project before surfacing a scoped error message.

Tool-Result Masking — Critical Fix

  • 🔓 File tool results are no longer over-masked — Previously, sensitive-data masking was applied too broadly to file reads, causing edit_file to fail because the snippet the AI saw didn't match raw disk content — leading to repetitive retry loops. Masking is now applied selectively only to tools that can surface real runtime secrets.
  • 🎯 Selective masking — run_terminal, run_script, and web_fetch outputs are still masked for safety. File I/O tools return content as-is, so the AI can reliably edit files that mention tokens, keys, or auth-related identifiers in source code.

edit_file Uniqueness Recovery

  • 📍 old_string found N times error now includes line numbers + context — Previously this error caused the AI to re-read the entire file and retry with the same non-unique snippet (3–5 wasted turns). The error now lists match line numbers and embeds surrounding context so the AI can build a unique match without re-reading.

What's New in 0.2.3

Memory & Long-Run Reliability

  • 🧠 LIYAAI.md periodic re-injection — On long tool chains the AI can drift away from workspace rules. The plugin now periodically re-injects a fresh copy of LIYAAI.md so rules stay in context regardless of session length.
  • 🪙 Hash-diff optimization — Re-injection skips the full payload when LIYAAI.md hasn't changed, sending a lightweight "rules still apply" marker instead to save tokens.
  • 📈 Adaptive cadence — Re-injection frequency adjusts automatically based on recent error rate: more frequent during error bursts, less frequent during smooth runs.
  • 📍 Plugin-maintained ## 📍 Current block — The plugin writes a live status block into LIYAAI.md after every tool call (task, last action, modified files, pending decisions, timestamp), so the AI can recover task state even after context drift.

Multi-Repo Path Safety

  • 🗂️ Subfolder prefix rule enforced — The AI is now explicitly instructed to always include the subfolder prefix on file paths in multi-project workspaces, preventing files from being resolved relative to the wrong project root.

Bug Fixes

  • 💬 ask_user_question options now render — A field-name mismatch was silently dropping the answer choices, forcing free-text input. This is now fixed and choice buttons render correctly.

Chat History Improvements

  • 🏷️ Automatic Session Titles — New chat sessions now generate history titles from the first user message instead of staying as a generic "New Chat"
  • 🔄 Restored Session Titles — Loaded backend sessions rebuild their local title state from the first user message for consistent history display
  • 🧹 Cleaner Title Formatting — Chat titles normalize whitespace and truncate to 50 characters for a compact history tab

What's New in 0.2.2

Auto-Accept Mode — Terminal Command Support

  • ⚡ Auto-Accept Terminal — run_terminal, git commit, and git push now execute without confirmation when Auto-Accept Mode is active
  • 🛡️ Smart Safety Filter — Dangerous commands (rm -rf, sudo, format, shutdown, dd if= etc.) still require explicit user confirmation even in Auto-Accept mode
  • 🔔 Transparency Log — Terminal commands auto-executed in Accept mode show an ⚡ Auto-executing status in the chat for full visibility
  • 🏷️ Updated Banner & Toast — Mode indicator now reads "edits & terminal commands run without confirmation" to accurately reflect the new behavior

Accessibility — Voice I/O

  • 🎙️ Speech to Text — Dictate prompts hands-free via microphone; no typing required
  • 🔊 Text to Speech — AI responses are read aloud automatically
  • ♿ Designed for visually impaired developers — ARIA-compliant chat panel, screen reader support (VoiceOver, NVDA, Orca), keyboard-only workflow

What's New in 0.2.0

WebSocket Transport

  • ⚡ WebSocket-only — HTTP polling fully replaced; tool call latency drops from ~3 s to ~50 ms
  • 🔗 Persistent connection — Single WS session per conversation; no reconnect overhead between messages
  • 🏓 Ping/pong keepalive — 30 s server-driven heartbeat; 400 s+ agent runs work without timeout
  • 🗑️ useWebSocket setting removed — No fallback path; WS is the only transport

Agent Infrastructure

  • 🪝 Hook System — UserPromptSubmit, PreToolUse, PostToolUse, Stop hooks with allow/block/modify semantics
  • 🔐 Permission Modes — 4-tier access control: plan / default / acceptEdits / bypassPermissions; per-tool allow/ask/deny rules with glob/regex support
  • 🤝 Sub-agents — Spawn specialized built-in agents (code-reviewer, debugger, planner, explorer) within a session
  • ⚡ Auto-compact — Automatic context compaction at 85% usage; /compact slash command; 3 modes (prompt / auto / disabled)

Workspace & Memory

  • 🧠 Project Memory — Persistent memory via LIYAAI.md and .liyaai/memory/; /memory slash command
  • 📋 Custom Commands — Add project slash commands as .md files in .liyaai/commands/
  • ⏪ Prompt Rewind — Per-message file snapshots; rewind button to undo AI edits
  • 🌐 web_fetch Tool — AI can fetch URLs directly (SSRF-protected Python script)
  • 🛠️ Script Runner — Run .liyaai/scripts/ scripts via run_script tool (venv-aware Python)
  • 📦 Multi-project Workspace — workspace.json for managing multiple sub-projects in one session

New Tools

  • 🧩 MCP Client — Connect any Model Context Protocol server; tools auto-registered in agent loop
  • 🎯 Skills System — Reusable, parameterized instruction sets loaded from .liyaai/skills/
  • 🐚 Background Shell — Long-running background processes with background_shell tool
  • ✅ Checkpointing — Save and restore agent state mid-session
  • 📓 Jupyter Notebook Tools — notebook_read and notebook_edit for .ipynb files
  • 🖼️ Image/Screenshot Input — Paste screenshots, pick files via button, or drag-and-drop images into chat
  • 📎 File Attachments — Attach files via paperclip UI; injected as <attached_file> context
  • 📊 Statusline — Live workspace context injection via statusline.sh
  • 🎨 Output Style — Customize AI response format/tone via .liyaai/output-style.md

Platform & Security

  • 📈 Analytics Client — Session and tool-use event tracking
  • 🛒 Marketplace — Feature flag system and /marketplace command
  • ⌨️ New Keybindings — Switched to Ctrl+Alt+* / Cmd+Alt+* to eliminate chord conflicts
  • 🔄 Backend Session Lock — Polling loop for 202 "processing" responses (100 × 3 s, up to 5 min)
  • 🔒 Security Hardening — Content Security Policy on WebView, 10 MB image upload limit, SSRF-protected web_fetch

See CHANGELOG.md for full release notes.

Documentation

  • Developer Documentation

License

LiyaLabs Community License v1.0 — Free for individual use. Commercial use (white-labeling, reselling, SaaS) requires a license from LiyaLabs. See LICENSE for details.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft