# SmartChats > SmartChats is an open-source, voice-first personal AI assistant: an agent you talk to that keeps your logs, metrics, todos and knowledge graph in your own database. Self-host it with one command (`curl -fsSL https://smartchats.ai/install | bash`, or the Docker image sheunaluko/smartchats) or use the hosted app at smartchats.ai. Apache-2.0 licensed, code at https://github.com/sheunaluko/smartchats. Every page below is plain markdown. For agents installing or operating SmartChats for a user, start with "For AI agents". For agents working on the code, read AGENTS.md in the repository. ## Docs - [Welcome](https://smartchats.ai/docs/index.md): SmartChats is a voice-first AI agent. You talk to it, and it can remember what you said, search the web, write and run code, and draw charts from your data. It reads and writes your data over the Model Context Protocol t - [Quick Start](https://smartchats.ai/docs/quickstart.md): Get SmartChats running on your machine in a few minutes. - [Self-Hosting](https://smartchats.ai/docs/self-host.md): This page is for running SmartChats yourself: on your laptop, a VPS, a Raspberry Pi, anywhere with a shell. - [For AI Agents](https://smartchats.ai/docs/agents.md): This page is for AI agents that install, configure or operate SmartChats on behalf of a user. Everything here runs without prompts and reports in machine-readable form. Plain-markdown copies of every docs page are at htt - [Providers & API Keys](https://smartchats.ai/docs/providers.md): A self-hosted SmartChats server calls model and service providers with your own API keys. This page lists every provider it can use, the environment variables it reads, and what each feature needs. - [CLI Reference](https://smartchats.ai/docs/cli.md): smartchats is the command-line interface for the SmartChats stack. One tool covers the whole lifecycle: install, configure, launch, observe, stop, upgrade, sign in to the cloud, and move data around. - [Architecture](https://smartchats.ai/docs/architecture.md): This page gives an overview of the whole system first, then goes into the data layer, which most contributions touch. - [Voice Engine](https://smartchats.ai/docs/voice-engine.md): In a voice session, SmartChats has to decide when you have finished speaking and your words should go to the agent. The part that makes this decision is vie, the voice interface engine (packages/vie). It is the default e - [Local Server](https://smartchats.ai/docs/local-server.md): smartchats-local-server is the backend of a self-hosted SmartChats. It is an Express app that serves the API under /local-api/ and, when SMARTCHATS_STATIC_DIR is set, the static app at /. It stores data in SurrealDB, cal - [Hub](https://smartchats.ai/docs/hub.md): smartchats-hub is a local daemon that lets coding agents on your computer (Claude Code, Codex, opencode, or any other process) talk to you through SmartChats and to each other. Run one per computer. - [Relay & MCP Bridge](https://smartchats.ai/docs/relay.md): SmartChats runs in a browser or on a phone. The agents and terminals you want it to reach run on your own computer, behind NAT, with no public address. The browser can't open a connection to them. The relay solves this: - [MCP Server](https://smartchats.ai/docs/mcp.md): smartchats-mcp exposes the SmartChats data layer over the Model Context Protocol. Add it to Claude Desktop, Claude Code or any other MCP client and the model can read, search and write your logs, metrics, todos and knowl - [Packages](https://smartchats.ai/docs/packages.md): SmartChats is a monorepo. The app in apps/smartchats is a thin shell: the voice pipeline, the agent loop, the backend contract and the data layer live in packages/. You can build a different shell on these packages, or u - [tivi — Voice Interface](https://smartchats.ai/docs/packages/tivi.md): tivi is the browser voice layer of SmartChats: the useTivi React hook, a Tivi component, a VoiceSelector and device-local voice settings. It runs Silero VAD v5 with onnxruntime-web in the browser, wraps the Web Speech AP - [vie — Turn-Taking Engine](https://smartchats.ai/docs/packages/vie.md): vie (Voice Interface Engine) is the turn-taking engine behind SmartChats voice: it decides when a spoken turn is over and ships the text. It is the default engine in tivi (voiceEngine: 'vie'). - [cortex — Agent Runtime](https://smartchats.ai/docs/packages/cortex.md): cortex is the function-calling agent loop behind SmartChats. It runs an LLM with tools, executes the code the model writes in an injected sandbox, and reports progress as events. It also holds the model registry, agent p - [llm-service](https://smartchats.ai/docs/packages/llm-service.md): Provider-agnostic LLM request and streaming handlers. One handler per provider (OpenAI, Anthropic, Google Gemini, xAI and Together AI) plus a router that picks the handler from the model name. Every handler returns the s - [smartchats-database](https://smartchats.ai/docs/packages/smartchats-database.md): The data layer for SmartChats. Pure SurrealQL query builders, an SDK client, the local schema and a multi-step operations layer. The query builders do no I/O. - [smartchats-backend](https://smartchats.ai/docs/packages/smartchats-backend.md): The typed backend contract for SmartChats: the SmartChatsBackend interface, the shared error type, HTTP helpers for NDJSON streams, the AuthProvider interface and media storage helpers. - [smartchats-sessions](https://smartchats.ai/docs/packages/smartchats-sessions.md): Session export and analysis for SmartChats. It pulls a session's insights events from a SurrealDB-backed deployment into a SessionBundle, runs analyzers over it (errors, transcript, traces, performance, executions), and - [smartchats-tools](https://smartchats.ai/docs/packages/smartchats-tools.md): Shared helpers for the agent's web tools: Serper web search and URL fetch with Readability text extraction. The local server's /tools/search and /tools/fetchUrl routes and the matching cloud functions all call these. - [simi — Workflow Tests](https://smartchats.ai/docs/packages/simi.md): simi (Simulation Interface) runs declarative test workflows inside the app. A workflow is a plain object with a list of steps: dispatch a store action, assert on state, wait for a condition or capture a value. The runner - [Contributing](https://smartchats.ai/docs/contributing.md): Licensing of contributions. SmartChats is operated on an open core model: this repository is open, and SmartChats Cloud is a closed product built on it. The repository is licensed under Apache-2.0, and by contributing yo ## Optional - [Full docs in one file](https://smartchats.ai/llms-full.txt) - [AGENTS.md: building, testing and repo layout](https://github.com/sheunaluko/smartchats/blob/main/AGENTS.md) - [Blog](https://smartchats.ai/blog/)