AI Toolbox is a comprehensive, production-grade plugin for LM Studio that extends LLM capabilities by exposing 84+ system tools directly to the model via function calling. It bridges the gap between conversational AI and real-world host system operations, enabling autonomous file management, web research, browser automation, code execution, database queries, document parsing, image processing, Git/GitHub integration, HTTP client operations, vector/document RAG, interactive UI generation, auto-context management, backup & restore functionality, and ContextGuard (infinite context window management)βall within a secure, sandboxed environment.
π― Core Philosophy
"Give your LLM hands to interact with the real worldβsafely."
AI Toolbox transforms passive language models into active problem-solvers by providing:
π§ Direct system access β Files, shell commands, environment variables
π Web connectivity β Multi-engine search, HTTP client, browser automation
REST API client with SSRF protection and timeout handling
π Vector RAG
4 π
Semantic search with local embeddings, persistent state via singleton pattern (getSharedStore()), web content fetching (rag_web_content), actual query results (no more placeholders)
π Document RAG
1
Chat with attached files or disk paths (PDF, DOCX, TXT, MD) via prompt preprocessing
π¨ Interactive UI Generation
4
Generate and render HTML/CSS/JS components: buttons, forms, charts, dashboards
πΎ Backup & Restore
4
Create compressed ZIP backups of plugin state with path traversal protection
# Clone or download the plugin repositorycd ai_toolbox# Install dependenciesnpm install# Build the pluginnpm run build# Load in LM Studio Plugins panel
// Example: Adding a new tool categoryimport { tool } from '@lmstudio/sdk';import { z } from 'zod';export function registerMyTools(config: PluginConfig): Tool[] { return [ tool({ name: 'my_custom_tool', description: 'What this tool does...', parameters: { param1: z.string().describe('Parameter description'), }, implementation: async ({ param1 }) => { // Tool logic here return { success: true, data: /* ... */ }; }, }), ];}