Warning: Loca is still in its early testing phase
Please report issues via email or at the GitHub repository
Smallest
Off
Balanced

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.

Smallest
Off
Balanced

End-to-end speech capabilities

Speech-to-Text lets you talk to the assistant, Text-to-Speech lets the assistant speak to you.

Language Model

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.

Smallest
Off
Balanced

Dual model routing

Set it up to use a small model locally while redirecting more complex requests to a more powerful external model.

Appearance Client

Complete themeability

Change the colors, fonts, shapes, effects, and more, because why not?

Language Model

Built-in downloader

Everything you need to start is automatically listed along with the file sizes and downloaded upon approval.

Smallest
Off
Balanced

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.

Smallest
Off
Balanced

Model Context Protocol support

Plug in popular MCP servers to quickly give the assistant access to various external services.

index.ts
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 };
}
loca.json
{
  "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"] }
}
Smallest
Off
Balanced

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.

Smallest
Off
Balanced

Sandboxed tool execution

Tools from extensions are run on the secure-by-default deno runtime and makes full use of its granular permission system.

Smallest
Off
Balanced

Automated greetings system

Set it up to automatically greet you when your PC starts, or everytime the app is opened.

Scheduled Prompts Core

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.

Morning briefing
Weekly · weekdays at 09:00
Next run in 3 hours Last run 2 days ago
Title
Prompt
Schedule
Repeat
Days
Time
Make up a missed run on the next start

Scheduled prompting

Make the agent do regular or repetitive tasks automatically on a schedule.

Ready
12%
Smallest
Off
Balanced

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.

Get Loca