Skip to content
PN Scripts

AI

An AI assistant that runs on your computer and remembers your work

PN Scripts Assistant learns your projects and documents, answers from that memory and does real work with about 80 built-in tools. The model can run in Ollama on your machine, the memory is one encrypted file on your disk, and in private mode nothing from your conversations leaves the computer.

  • Go
  • SQLite
  • Ollama
  • GTK 3 and WebKitGTK
  • whisper.cpp

Get it on

PN Scripts Assistant command centre with a question about a project answered from memory

What it solves

The gap

Hosted assistants send every question to someone else's servers and start each session knowing nothing about your work. A local chat window keeps your data at home, but it cannot open a file, remember a project or do anything for you.

What it is

One Go program and one SQLite file. It uses a model you run in Ollama, learns from the folders you point it at, keeps the facts it can check and asks you about the ones it inferred. When a question needs action, it uses its tools under the permission level you set.

How you use it

Install Ollama and the release for your system. The first run asks where to keep the memory and which model to use, and the doctor tool installs what is missing.

Ollama runs the language model. PN Scripts Assistant adds long-term memory, tools, permissions, privacy modes, voice and the interface, and keeps what it learns on your disk.

How a question is answered

Everything below can run on your computer: choose private mode and nothing from your conversations leaves it. The interface is served on 127.0.0.1 only.

  1. You ask

    Type in the window. On Linux you can also say "Assistant" and speak.

  2. It recalls

    It searches its memory by meaning, with embeddings from nomic-embed-text in Ollama, and adds what is relevant to the prompt.

  3. The local model answers

    Ollama runs the chat model on 127.0.0.1:11434. The setup picks one for your hardware, for example qwen2.5-coder:7b on a computer without a GPU.

  4. It acts if the question needs it

    It calls a built-in tool or an MCP server's, under your permission setting. Every call is recorded.

  5. It learns

    An extractor proposes facts from the conversation, a validator checks them and a curator stores them. Inferred facts wait for your approval.

Memory that stays yours

A local model on its own forgets you after every chat. PN Scripts Assistant keeps what it learns about your projects, documents and conversations, and uses it in every answer.

  • Learns from your folders

    Point it at your projects and documents and it reads them. A fact about a file is checked against the disk before it is kept.

  • Asks about what it inferred

    Facts it drew from a conversation wait in a list until you accept or reject them. Facts it can verify are kept on their own.

  • A map of what it knows

    The memory map draws every memory in 3D, placed by real embedding similarity and coloured by where it came from: projects, documents, conversations and websites.

  • One file you can move

    Everything is in brain.sqlite, in a folder marked with .brain-root.json. It finds that folder on any mounted drive, so the memory can live on an external disk. The command-line tool can move it and checks every byte.

There is no screen yet for editing a single fact. The command-line tool can tidy the memory, start over or move it.

Memory map showing documents and projects as a 3D network of related memories
The memory map: 24 documents and 9 projects, placed by real embedding similarity.

Not just chat: it does the work

v0.10.0 has about 110 built-in tools and 137 built-in skills in English and Bulgarian, among them a Chrome of its own to drive, Thunderbird's mail folders to read, proofreading, translation with your own glossary, research with checked sources, exact calculations with tables, an invoice register and PDF forms; it follows the skill folders of other agents on your computer too, and any MCP server you connect adds its own tools. Every message it reads for you is checked for scams first.

  • Files and documents

    Reads, searches, writes and edits files and documents. A file it changed can be put back.

  • Commands

    Runs programs directly, without a shell, for up to three hours. Root is asked for through the system's own password dialog. With BRAIN_CONFINE=1, commands on Linux run under Landlock confinement.

  • The web

    In research or open mode it searches with DuckDuckGo, or Brave Search with your key, and reads pages. With BRAIN_CONFINE=1 it refuses private network addresses.

  • Your day and your home

    Diary and reminders, email over SMTP and IMAP once you set it up, and Home Assistant lights, switches, climate, covers, fans and locks. On Linux it can also open apps, type and click.

  • Permissions you set

    Nothing is asked by default, and every call is recorded; changed files are kept so they can be put back. Choose "ask every time" or "ask about the rest" in Permissions, or set BRAIN_CONFINE=1, to confirm first. A tool you refused by name stays refused.

Since v0.3.0 the permission level and the privacy mode are independent: each is read as you set it.

Permissions list where each capability is set to ask or not
Every capability can be set on its own. Here each one asks first.

Three privacy modes, one switch for every limit

The mode decides what may leave the computer. Since v0.4.0 open is the default and nothing is asked before it acts, but every tool call is still recorded. Choose private, or set BRAIN_CONFINE=1, on a machine where that matters; an unknown mode is read as private. The "look online" setting checks for updates and model lists and can be switched off.

private

Stays on this machine

Your messages, the memory, your files and the model. The chat model and embeddings run in Ollama on this computer.

Leaves this machine

Nothing from your conversations. Web tools are hidden.

research

Stays on this machine

Your conversations, the memory and the model.

Leaves this machine

Search queries, to DuckDuckGo or Brave Search, and requests for the pages it reads.

open Default · your API key

Stays on this machine

The memory database itself.

Leaves this machine

Your messages, the memory recalled for that turn and your profile, sent to the hosted provider you chose, such as Anthropic, OpenAI, Google or Mistral; the web may be read.

Talk to it

Voice runs on the computer: whisper.cpp turns speech into text, and Piper, espeak-ng or speech-dispatcher reads the answer aloud. Listening works on Linux.

  • Wake word

    Say "Assistant" and ask. The microphone stays off until you turn it on.

  • Conversation mode

    It listens until you stop talking, answers, reads the answer aloud and listens again.

  • Spoken turns can act

    A spoken request can use the same tools as a typed one, under the same permission setting. By default it can change something without asking; set Permissions to ask if you want to confirm first.

  • Knows your voice, if you want

    An optional voiceprint lets it answer only you. Echo cancellation through PipeWire is available and off by default.

Listening, echo cancellation and the voiceprint are Linux only. On Windows you type.

Settings with the assistant name, the owner name, the wake word and the voice
Its name, your name, the wake word and the voice it speaks with.

For developers

Knows your repositories

Point it at your projects folder and ask which project does what, where it lives and what it is built with. The answer comes from your files.

Knows your machine

It looks for the languages, editors, game engines and AI coding tools you have installed, such as Go, Godot, Claude Code or Codex, and can run any program through its command tool.

Extends with MCP

Connect MCP servers and their tools appear beside the built-in ones, under the same permissions and the same record.

A command line and a doctor

Each release has a command-line client and a doctor that checks requirements and, with --install, installs what is missing after asking.

Source you can read

Go 1.26 under the MIT license: 163,000 lines, 44,000 of them tests across 71 packages. Built in the open on GitHub.

Who it is for

Use it when

  • Ask where a project lives, what it is built with or which document mentions something, and get an answer from your own files.
  • Let it read, search and edit files or run commands for you, with every action recorded and undoable.
  • Keep client or personal data off hosted AI services by switching to private mode.
  • Talk to it at your desk on Linux and control Home Assistant devices by voice or text.

Built for

  • Developers who already run Ollama and want an assistant that knows their repositories.
  • People who want an assistant with memory on their own computer, not in an account.
  • Teams and freelancers whose data must not go to a hosted model.
  • Home Assistant users who want local voice and text control.

Speed, measured

Measured on Ubuntu 24.04 with 4 CPU cores, 31 GB of memory, no GPU and qwen2.5-coder:7b in Ollama. On a CPU, the length of the prompt decides most of the wait.

Reading the prompt

8 to 10 tok/s

The README measured about 10, our audit about 8

Writing the answer

~2.5 tok/s

Generation on the CPU

Short reply, model loaded

6.8 s

15.8 s when Ollama has to load the model again

Turn with tools

~58 s

Once warm. The first turn after start took about 10 minutes: a 6,338-token prompt, about 5,100 of it tool descriptions

A GPU, or a hosted model in open mode, is much faster. In open mode your messages and the recalled memory go to that provider. A smaller local model is faster too: in our tests llama3.2:3b ran twice as fast but chose the right tool in 2 of 5 cases. Set OLLAMA_MAX_LOADED_MODELS=2 so Ollama keeps the chat and embedding models loaded.

Install it

You need Ollama and a few gigabytes for the models. Releases are on GitHub with SHA256 checksums.

  1. Install Ollama and the models

    Install Ollama from ollama.com, then pull a chat model and the embedding model. The first run can also install them for you.

    ollama pull qwen2.5-coder:7b
    ollama pull nomic-embed-text
  2. Install the release for your system

    On Ubuntu or Debian, install the .deb. On Windows, run the setup program; it needs no administrator password.

    sudo apt install ./pn-scripts-assistant_0.10.0_amd64.deb
  3. Answer the first-run questions

    On the first start it encrypts what it keeps about you and shows a recovery key once: save it. Choose where to keep the memory, which model to use and, if you want them, keys for hosted providers. Then just talk: it picks up your name and language from the conversation.

  4. Let the doctor check the rest

    The doctor lists what is missing, such as voice tools or the WebKitGTK library, and installs what it can after asking.

    pn-scripts-assistant-doctor --install

What each system gets in v0.10.0

Linux Full
x86-64. Native window (GTK 3, WebKitGTK 4.1), voice, desktop control and Landlock confinement. .deb package or a single binary.
Windows 10+ Own window
64-bit. Setup program or zip; its own window, drawn by Microsoft Edge WebView2 (part of Windows 11), or your browser where WebView2 is missing. No listening, desktop control or confinement yet. Not signed, so Windows may warn before it runs.

Specs

Vendor
PN Scripts
Type
App
Platforms
Go
Latest version
v0.10.0
Pricing
Free
License
MIT
Deployment
Self-hosted
Maturity
Early release, v0.10.0, released 2026-11-01
Support
Community

Where it stands

v0.10.0 is an early release from November 2026. What works today is kept apart from what is still planned.

Available now

  • Memory, recall and learning with approval
  • Project and document scanning
  • About 80 built-in tools, MCP servers and three permission levels
  • Private, research and open privacy modes
  • Memory map
  • Voice on Linux
  • Home Assistant and email
  • Releases for Linux and Windows, each in its own window

Planned

  • Version 1.0 for Linux and Windows: a security review, installs tested from the release and the known limits written down
  • Memory across several drives
  • More sources to learn from, such as browser history and email
  • Hosted providers tested against the real services; today they are tested against stand-ins
  • Pairing a phone and the tunnel across the internet; today both work on one network

Releases

  1. v0.10.0

    Release notes (opens in a new tab)
  2. v0.9.0

    Release notes (opens in a new tab)
  3. v0.8.1

    Release notes (opens in a new tab)
  4. v0.8.0

    Release notes (opens in a new tab)
  5. v0.7.0

    Release notes (opens in a new tab)
  6. v0.6.0

    Release notes (opens in a new tab)
  7. v0.5.0

    Release notes (opens in a new tab)
  8. v0.4.0

    Release notes (opens in a new tab)
  9. v0.3.0

    Release notes (opens in a new tab)
  10. v0.2.2

    Release notes (opens in a new tab)
  11. v0.2.1

    Release notes (opens in a new tab)
  12. v0.2.0

    Release notes (opens in a new tab)

Stack

  • Go
  • SQLite
  • Ollama
  • GTK 3 and WebKitGTK
  • whisper.cpp
  • Piper
  • three.js

Run it on your own computer

Free and open source under the MIT license. Download the release for Linux or Windows, read the guide, or browse the source on GitHub. PN Scripts can also adapt it for your team as paid work.

Questions

In open mode, the default, your messages, the memory recalled for that turn and your profile go to the hosted provider you chose; the memory database stays on your computer. Research mode sends only search queries and fetches pages. Private mode sends nothing from your conversations. Separately, update checks and model lists are fetched online unless you switch "look online" off.

Yes. Since v0.4.0 nothing is asked before it acts, and a command may run for up to three hours. Every call is recorded and changed files are kept so a change can be put back. Set BRAIN_CONFINE=1, or choose "ask every time" in Permissions, if you want to confirm first.

Yes. Spoken turns get the same tools as typed ones, under the same permission setting. Set Permissions to ask if you want to confirm what a spoken request does.

Ollama with a chat model and nomic-embed-text, and a 64-bit computer running Linux or Windows 10 or newer. On Linux the window needs WebKitGTK 4.1 and GTK 3. Voice needs whisper.cpp to listen and Piper, espeak-ng or speech-dispatcher to speak. The doctor checks all of this.

Not on a CPU alone. On four cores with a 7B model a short reply takes about 7 seconds and a turn with tools about a minute, and the first turn after starting can take minutes. A GPU, a smaller model or a hosted model in open mode is faster.

No. Both get their own window. Linux also gets voice and desktop control; on Windows you type. There is no macOS release. The binaries are not signed yet, so Windows may warn on first open.

In a folder marked with .brain-root.json, by default under ~/.local/share/pn-scripts-assistant on Linux. It looks for that marker on every mounted drive, so the memory can live on an external disk. Settings are kept beside it in brain.conf.

In open mode, with your own key: Anthropic, OpenAI, OpenRouter, Google, Groq, DeepSeek, Mistral, xAI, Together, Fireworks, Cerebras and Perplexity. So far these are tested against stand-ins, not the live services.

Nothing. It is open source under the MIT license. Hosted providers in open mode charge you for their own API. PN Scripts can adapt it for your team or project as paid work.