Loca is an open-source AI assistant
Press the shortcut key and it will show up as an overlay on top of other applications for quick access. Designed to feel like an integrated AI assistant.
End-to-end speech capabilities
Speech-to-Text lets you talk to the assistant, Text-to-Speech lets the assistant speak to you.
Local-first for privacy and security
Powered by llama.cpp and sherpa-onnx to provide a wide selection of local language and speech models. Runs completely off the internet, while still allowing you to use external providers if you want.
Dual model routing
Set it up to use a small model locally while redirecting more complex requests to a more powerful external model.
Complete themeability
Change the colors, fonts, shapes, effects, and more, because why not?
Built-in downloader
Everything you need to start is automatically listed along with the file sizes and downloaded upon approval.
Knowledges and skills
Set up the assistant with extra information on things and how to do things, and it will automatically recall the most relevant ones on every prompt.
Model Context Protocol support
Plug in popular MCP servers to quickly give the assistant access to various external services.
import { dispenseFood } from "@acme/petnet";
import type { ToolContext } from "loca:tool";
// the feed_cat tool
export async function feedCat(
args: { portion?: string },
ctx: ToolContext,
) {
const [bowl] = await ctx.askUser([
{
question: "Which bowl should I fill?",
options: [
{ label: "Kitchen", value: "kitchen" },
{ label: "Patio", value: "patio" },
],
},
]);
await dispenseFood({ bowl, grams: 45 });
return { fed: true, bowl };
}{
"name": "feed_cat",
"description": "Dispense a portion from the smart feeder.",
"parameters": {
"type": "object",
"properties": {
"portion": { "type": "string" }
}
},
"triggers": ["feed my cat", "feed Mochi"],
"function": "feedCat",
"permissions": { "net": ["petnet.local"] }
}Highly extensible via Extensions
For things super specific to your use case, write your own simple tool in JavaScript or TypeScript with our Extensions system.
Sandboxed tool execution
Tools from extensions are run on the secure-by-default deno runtime and makes full use of its granular permission system.
Automated greetings system
Set it up to automatically greet you when your PC starts, or everytime the app is opened.
Prompts that run on their own on a schedule. Each run opens a new session, and the agent can propose one in chat for you to approve.
Scheduled prompting
Make the agent do regular or repetitive tasks automatically on a schedule.
Control it from your mobile device
The mobile client allows you to securely communicate with your desktop assistant remotely, giving full access to all of its capabilities.