#Developing for Personal Goober
Personal Goober is like Google Assistant, but worse and for your computer. You type a phrase into the box, it figures out what you meant, and it runs the matching action.
Almost everything the assistant can do lives in an action pack — a small folder of JavaScript and JSON. Packs ship with the app, and anyone can build and share their own. These docs cover how to build them.
#What you can build
- Actions — code that runs when the user types a matching phrase (set the volume, open an app, tell a joke, hit an API, whatever you want).
- Phrases — the natural-language triggers that map to your actions, with
{placeholder}slots that get passed to your code as parameters. - Bundles — a zipped pack you can hand to other people, or offer as a one-click install from your own website.
#How it fits together
Personal Goober is an Electron app, so it runs as two processes:
- The renderer is the window you see — the text box and its output.
- The main process is plain Node.js. It loads your packs, matches input, and runs your action code.
When you submit a phrase, this is roughly what happens:
your input
-> tokenize (lowercase, strip punctuation, split into words)
-> match (compare tokens against every phrase in every pack)
-> dispatch (pick the most specific match, extract {parameters})
-> run(params) (execute your action's exported function)
-> { success, message } (shown back in the window)Every pack found in the app's actions/ directory is loaded into an in-memory
registry once, on startup. Matching then happens against that registry, so
lookups stay fast no matter how many packs you install.
Your action code runs in the main process, with the full power of Node.js and full access to the computer. That's what makes packs useful — and why Personal Goober asks the user to confirm before installing one. Only ship code you'd be comfortable running on someone else's machine.
#Start here
- Building an Action Pack — the folder layout, the
files, and the
run()contract your actions implement. - Phrases & Matching — how input becomes parameters, and how to write phrases that trigger reliably.
- Packaging & Distributing — how to bundle a pack, how installation works, and the security model behind it.
Looking to install a pack rather than build one? See the user guide on action installation.