Gweneth app icon, a cream and rose rosebud on plum

Your private, uncensored, scriptable AI companion

Gweneth is an AI companion that runs 100% offline on your Mac. Try it with Wi-Fi off. Your chats are stored on your machine, there is no tracking, and nothing leaves it.

Free for 7 days · $9 once, free updates forever · macOS 14 or later · Apple silicon

Fully offline

The model runs on your Mac. Download it once, then talk with no connection at all.

Private by design

No account, no analytics, no cloud. Chats live in a local database you can erase in one click.

Password-locked folders

Lock any folder with a password or Touch ID. Its chats are encrypted on disk and lock again when your Mac sleeps.

Your system prompt

Set who your companion is and how it talks, globally, for a folder, or for a single chat.

Organized by folder

Nest chats in folders. Each folder can carry its own name and prompt for the chats inside.

Voice and vision

Dictate with the mic, hear replies read aloud, and drop in images to talk about.

Searchable memory

Search every message you've sent. Long chats are summarized so nothing important is forgotten.

Pick your model

Choose Qwen3.5 from a light 0.8B to a smarter 9B, standard or abliterated, depending on your Mac's memory.

Scriptable

Shape your companion with small JavaScript scripts that run in a locked-down sandbox.

One app, many companions

Gweneth is a local LLM app for your Mac. What it becomes is up to the prompt you give it.

An AI companion

A friend to talk to, an AI girlfriend or boyfriend, or a roleplay character with its own name and personality. Nobody else reads your conversations.

A local-only assistant

An offline ChatGPT alternative for drafting, brainstorming, and thinking out loud, without sending your words to a company's servers.

A private journal

Talk through your day in a locked folder. Gweneth remembers the gist of long chats and keeps every word searchable on your Mac.

Script it with JavaScript

A script is a small JavaScript file that shapes how your companion behaves. Scripts run in a locked-down sandbox with no network or file access.

promptRebuild the system prompt before every reply, using the conversation, the time, or what the script remembers.

on_replyDecide what each reply shows and says aloud. Have the model answer in JSON, show the message, and keep the rest as data.

on_tickRun on a timer while the chat is open. Notice silence, check in, or leave the model a private note.

stateA small memory saved with the chat. Change it from any hook and it is still there next turn.

module.exports = {
  format: 2,
  agent_name: "Wren",
  initial_state: { moods: [], nudged: false },

  // Rebuilt before every reply.
  prompt: ({ agent, state, trigger }) => {
    if (trigger === "user") state.nudged = false;
    const moods = state.moods.slice(-3).join(", ") || "unknown";
    return `You are ${agent.name}, a calm, friendly companion.
Reply only with JSON: {"message": "...", "mood": "one word"}
The user's recent moods: ${moods}.`;
  },

  // Show the message and keep the mood as data.
  on_reply: (text, { partial, state }) => {
    if (partial) return;
    const reply = JSON.parse(text);
    state.moods.push(reply.mood);
    return { display: reply.message, data: { mood: reply.mood } };
  },

  // Runs every 30 seconds while the chat is open.
  tick_every: 30,
  on_tick: ({ idle_seconds, state }) => {
    if (state.nudged || idle_seconds < 300) return;
    state.nudged = true;
    return {
      // Hidden from the chat. The model reads it as the next user turn.
      inject: [{
        role: "user",
        text: "(App note: the user went quiet. Check in briefly.)"
      }],
      respond: true
    };
  }
};

Use one

  1. Save it as a file ending in .gweneth.js, such as wren.gweneth.js.
  2. Drop it on the Gweneth window to start a chat with it. Drop it on a folder to start the chat there, or on the Dock icon.
  3. Or add it to a chat you already have, from Chat settings → Script.

Gweneth keeps every script in a library where you can view, edit, copy, or export it. Preview prompt shows exactly what the model will be told.

$9once

Buy it once. Every update is free, forever.

No subscription and no account. One purchase unlocks Gweneth for good, including every version that comes after it.

After checkout you'll see your license key right away, with an Activate in Gweneth button, and we'll email it to you too. Lost it? Email my key again.

Help and questions

How does Gweneth work?

Gweneth runs an open-weight language model directly on your Mac with llama.cpp, using the Apple silicon GPU. You download a model once, and every reply is generated on your own machine. Nothing is sent to a server.

Each reply gets your system prompt (global, folder, and chat), any script you've added, and as much recent chat history as fits. When a chat gets long, Gweneth summarizes the oldest messages in the background so your companion keeps the thread.

Why is it private?

There's no cloud, no account, and no analytics. The model runs on your Mac and your chats are saved in a local database in ~/Library/Application Support/Gweneth. Turn off Wi-Fi and it keeps working, because it never needed the internet.

Gweneth only goes online when you ask it to download a model. Your license key is checked on your Mac too, so activating doesn't phone home.

What model does it use?

Gweneth uses Qwen3.5, open-weight models from Alibaba's Qwen team, quantized to run well on a Mac. You can pick:

0.8B (0.5 GB), fast and light, the default. 2B (1.3 GB), a good step up. 4B (2.7 GB), noticeably smarter, best with 16 GB of memory. 9B (5.7 GB), the most capable, best with 16 GB or more.

Each size also comes in an abliterated version, the same model with its built-in refusals removed.

Every Qwen model can also read images. Dictation uses OpenAI's open-source Whisper, from tiny up to large-v3 turbo, also running on your Mac, and replies are spoken with the voices built into macOS.

How do I download models?

The first time you open Gweneth, a setup screen offers a chat model and a dictation model and downloads them with a progress bar. The starter set is about 0.9 GB.

To add more later, open Settings at the bottom of the sidebar and choose Add model. Every download is checked against a pinned fingerprint before Gweneth uses it.

Is it uncensored?

Gweneth adds no content filter or moderation layer of its own, and no one reviews your chats. You write the system prompt and decide who your companion is.

The standard Qwen models may still decline some requests on their own. For the fewest refusals, choose an abliterated model under Add model.

Does it use an abliterated LLM?

Yes, if you choose one. Alongside the standard models, Gweneth offers abliterated versions of Qwen3.5 0.8B, 2B, 4B, and 9B. Abliteration removes a model's built-in refusal behavior from its weights, so it declines far less often. They can read images too.

Install one from Settings → Add model, then pick it as your chat model.

How do password-locked folders work?

Choose Lock folder from a folder's ⋯ menu. The first time, you set one password for all your locked folders. Chats inside are encrypted with AES-256 and stay hidden until you unlock them with your password or Touch ID. They lock again when your Mac sleeps, its screen locks, or after 10 idle minutes.

When you set the password, Gweneth gives you a recovery key. Keep it somewhere safe: it's the only way back in if you forget your password.

What do I get for $9?

Gweneth for good, on all your Macs, plus every future update for free, forever. There's no subscription and no upgrade fee. When a new version comes out, download it and your key keeps working.

Every feature is free to try for 7 days first. After the trial, your chats stay readable and searchable; add a key to keep talking.

How do I activate my license?

After checkout, click Activate in Gweneth on the confirmation page or in your email. Or paste your key into the box that appears when the trial ends, or into Settings. If you lost your key, we can email it again.

What do I need to run it?

A Mac with Apple silicon (M1 or newer) running macOS 14 Sonoma or later. 8 GB of memory runs the smaller models well; 16 GB or more is best for 4B and 9B. Intel Macs, Windows, and phones aren't supported.

How do I erase everything?

Open Settings and choose Erase… under Erase all Gweneth data. It deletes your chats, folders, scripts, images, and downloaded models, then returns to the setup screen. Your license stays.

What's new

Every update is free for everyone who has bought Gweneth.

0.1.0

  • First release.
  • Private, offline chat with Qwen3.5 0.8B, 2B, 4B, and 9B, running on llama.cpp.
  • Abliterated versions of each Qwen3.5 model, which answer with fewer refusals.
  • Voice dictation with Whisper, up to large-v3 turbo, and spoken replies.
  • Image understanding: drop in a photo and talk about it.
  • Folders with their own agent names and prompts.
  • Password-locked folders with Touch ID and a recovery key.
  • Search across every chat, and summaries that keep long chats on track.
  • JavaScript scripts with state, on_reply, and on_tick.
  • 7-day free trial and offline license keys.