A fun VS Code extension that adds random kaomoji (Japanese emoticons) and AI-powered explanations to your code lines. Choose between Ollama, GitHub Copilot, LM Studio, OpenAI, or Anthropic as your AI provider, and toggle between humorous comments and helpful code advice!
- Random Kaomoji: Adds a random kaomoji emoticon after the current line
- AI Explanations: Uses Ollama, GitHub Copilot, LM Studio, OpenAI, or Anthropic to generate concise explanations of your code
- Inline Helper Modes: Choose between
off,helpful,funny, orwikimodes - Wiki RAG: Index your own
.mddocumentation files and inject relevant snippets as context into any command — or display them inline as you navigate code - Multi-Platform AI: Support for Ollama (local), GitHub Copilot (cloud), LM Studio (local with official SDK), OpenAI (cloud, or any OpenAI-compatible API), and Anthropic (cloud, via official
@anthropic-ai/sdk) - Five Command Modes:
- Ask ASKII: Ask questions about your selected code
- ASKII Edit: Have ASKII modify your selected code based on your request
- ASKII Do: Agentic workspace agent — view, list, create, modify, rename, and delete files across multiple rounds until the task is complete
- ASKII Control: Give ASKII a screen instruction — it takes screenshots and drives your mouse and keyboard until the task is done
- ASKII Browse: Give ASKII a browser task — it launches a Puppeteer browser, takes page screenshots, and navigates the web until the task is done
- Ollama: Download and install from https://ollama.ai
- Pull a model, e.g.,
ollama pull gemma3:270m - Make sure Ollama is running (default:
http://localhost:11434)
- GitHub Copilot Extension: Install from the VS Code marketplace
- Active GitHub Copilot subscription
- Select
copilotin theaskii.llmPlatformsetting
- LM Studio: Download from https://lmstudio.ai
- Start LM Studio and load your preferred model
- Select
lmstudioin theaskii.llmPlatformsetting
- An OpenAI API key (or any OpenAI-compatible API key)
- Select
openaiin theaskii.llmPlatformsetting - Set your API key in
askii.openaiApiKey - Optionally set a custom
askii.openaiUrlfor Azure OpenAI or other compatible APIs (leave empty forapi.openai.com)
- An Anthropic API key from console.anthropic.com
- Select
anthropicin theaskii.llmPlatformsetting - Set your API key in
askii.anthropicApiKey - Optionally set a model in
askii.anthropicModel(default:claude-opus-4-6)
The extension automatically shows inline comments as you move your cursor through your code.
Open VS Code Settings (Ctrl+, or Cmd+,) and search for "ASKII LLM Platform" to choose:
ollama(default)copilotlmstudioopenaianthropic
Search for "ASKII Inline Helper Mode" and select:
off— No inline decorationshelpful— Practical coding advicefunny— Humorous comments (default)wiki— Shows a one-sentence explanation informed by your indexed wiki docs. Searches the wiki index for the current line and passes the top matching chunks as context to the LLM. Requiresaskii.wikiPathto be set and indexed
- Select code in your editor
- Open command palette (
Ctrl+Shift+PorCmd+Shift+P) - Search for "Ask ASKII"
- Type your question
- View the formatted markdown response in a side panel with VS Code theme-aware styling
- Select code in your editor
- Open command palette
- Search for "ASKII Edit"
- Describe the changes you want
- The selected code will be replaced with the updated version
- Open command palette
- Search for "ASKII Do"
- Describe what you want ASKII to do (e.g., "Create a unit test file for src/utils.ts")
- ASKII shows the top-level workspace structure, then runs in a loop until the task is done or
doMaxRoundsis reached:- List Folder: ASKII can list any folder's contents (
[file]/[folder]labels) to explore the workspace - View File: ASKII can read file contents to understand your codebase before acting
- Analyze & Act: Based on what it reads, ASKII issues create, modify, rename, or delete actions
- Continuous Loop: After each round ASKII is asked "what next?" — it keeps going until it returns
[]
- List Folder: ASKII can list any folder's contents (
- Confirm each action before it's applied:
- CREATE: Confirmation to create new files
- MODIFY: Confirmation to modify existing files
- RENAME: Confirmation to rename or move files
- DELETE: Warning confirmation for deletions
- VIEW / LIST: No confirmation needed (read-only)
- Open command palette
- Search for "ASKII Control"
- Describe what you want done on screen (e.g., "Open Notepad and type hello world")
- ASKII takes a screenshot and proposes the next action (mouse move, click, or keyboard input) with its reasoning
- Confirm each action before it executes — or enable
askii.doAutoConfirmto run unattended - After each action a new screenshot is taken and the loop repeats until ASKII returns DONE or
askii.doMaxRoundsis reached
Requires a vision-capable model such as
llavaormoondream2.
- Open command palette
- Search for "ASKII Browse"
- Describe what you want done in a browser (e.g., "Go to https://example.com and click Learn more")
- ASKII launches a Puppeteer browser (visible by default), takes a screenshot of the current page and its URL, then proposes the next action with its reasoning. Supported actions:
- goto: Navigate to a URL
- click: Click an element by CSS selector
- type: Type text into an element by CSS selector
- wait_for: Wait until a CSS selector appears in the DOM
- back / forward: Navigate the browser history
- DONE: Returned when the task is complete
- Confirm each action before it executes — or enable
askii.doAutoConfirmto run unattended - After each action a new screenshot is taken and the loop repeats until ASKII returns DONE or
askii.doMaxRoundsis reached - The browser is closed automatically when the loop ends
Requires a vision-capable model. Set
askii.browserHeadlesstofalse(default) to watch the browser window while ASKII works.Requires Chrome or Chromium to be installed. Set
askii.chromePathto the executable path if it is not detected automatically.
Point ASKII at a folder of .md files and it will index them into a local vector database (powered by MiniSearch — pure JS, no native dependencies). The relevant chunks are automatically prepended as context when you Ask, Edit, or Do tasks.
- Set
askii.wikiPathto the folder containing your.mddocs - Run ASKII: Reload Wiki from the command palette (or status-bar menu) to build the index — a progress spinner shows while indexing and a notification confirms when done
- Enable
askii.wikiEnabledto inject wiki context into Ask / Edit / Do commands - Optionally set
askii.inlineHelperModetowikifor inline decorations that show LLM explanations enriched by your docs
The index is cached in memory after the first load — no disk reads on subsequent queries.
Click the ASKII (⌐■_■) button in the bottom right status bar to quickly access:
- Ask ASKII
- ASKII Edit
- ASKII Do
- ASKII Control
- ASKII Browse
- Reload Wiki
- Clear Cache
All settings can be customized in VS Code Settings (Ctrl+, or Cmd+,):
askii.llmPlatform: Choose LLM provider (ollama|copilot|lmstudio|openai|anthropic)askii.ollamaUrl: URL for Ollama API server (default:http://localhost:11434)askii.lmStudioUrl: URL for LM Studio API server (default:ws://localhost:1234)askii.ollamaModel: Ollama model name (default:gemma3:270m)askii.copilotModel: GitHub Copilot model (default:gpt-4o)askii.lmStudioModel: LM Studio model (default:qwen/qwen3-coder-30b)askii.openaiApiKey: OpenAI API key (used whenllmPlatformisopenai)askii.openaiModel: OpenAI model (default:gpt-4o)askii.openaiUrl: OpenAI-compatible base URL — leave empty forapi.openai.com, or use for Azure OpenAI / other compatible APIsaskii.anthropicApiKey: Anthropic API key (used whenllmPlatformisanthropic)askii.anthropicModel: Anthropic model (default:claude-opus-4-6; e.g.claude-sonnet-4-6,claude-haiku-4-5)askii.inlineHelperMode: Inline helper mode (off|helpful|funny|wiki, default:off)askii.wikiEnabled: Enable wiki RAG context for Ask / Edit / Do commands (default:false)askii.wikiPath: Path to a folder containing.mddocumentation files to index for wiki RAG. Run ASKII: Reload Wiki after changing this or updating the docsaskii.doMaxRounds: Maximum interaction rounds for ASKII Do / Control / Browse commands (default: 5)askii.doAutoConfirm: Skip confirmation prompts in ASKII Do / Control / Browse (default:false)askii.formatAfterEdit: Auto-format files after ASKII Edit or Do (default:false)askii.browserHeadless: Run the Puppeteer browser headlessly for ASKII Browse (default:false— browser window is visible)askii.chromePath: Path to the Chrome/Chromium executable for ASKII Browse (e.g.C:\Program Files\Google\Chrome\Application\chrome.exe). Leave empty to use the system default
const sum = a + b; (◕‿◕) The age-old tradition of making numbers hang out together!const sum = a + b; (◕‿◕) Adds two variables; prefer const for variables that won't be reassigned.connectToDatabase(config); (⌐■_■) [docs/database.md — Connection] Pass the config object returned by loadConfig(); see the Connection section for supported options.- Markdown Rendering: Ask ASKII responses are rendered using markdown-it with syntax highlighting and VS Code theme integration
- Confirmation Dialogs: ASKII Do command requires confirmation for all write operations (CREATE, MODIFY, DELETE) to prevent accidental changes
- Smart Caching: Inline explanations are cached to minimize API calls
- Debouncing: Requests are debounced for optimal performance
- Mouse/Keyboard Control: ASKII Control uses platform shell commands (PowerShell on Windows, AppleScript on macOS,
xdotoolon Linux) instead of native Node modules, so the extension bundles cleanly with no native.nodefiles. Linux users needxdotoolinstalled (sudo apt install xdotoolor equivalent)
Love ASKII? Feel free to contribute to the project on GitHub!
Enjoy! (づ。◕‿‿◕。)づ