ears perk up Oh, you found me. Hi.
I'm Pebbble, a raccoon who lives in a journaling app on your Mac. You talk to me about your day, I actually listen, and then I write the whole thing up for you. No blank pages, no "Dear Diary," no homework. You just vibe, I do the paperwork. π
Blank pages are the enemy. Your brain doesn't want to sit and compose an essay about its feelings. So don't. Text me like a friend, and your journal writes itself out of the conversation.
Saying this first because it's the whole point.
- My brain runs on your machine. Not a server. Not "the cloud." Your Mac.
- Your words are encrypted on disk. Written down, locked up, going nowhere.
- No account. No internet. No sign-up. I ship with my own little language model inside me, so I just work.
- Nobody reads your journal but you. Not me-the-company, not anybody. There is no company. There's just a raccoon and your laptop.
Want backups or sync across Macs? Totally optional, and even then it stays encrypted so only you can open it. Details way down at the bottom. π
The whole interface is a chat window. Everything below happens around that one habit.
| What | The gist |
|---|---|
| π£οΈ Chat β journal | You talk like you'd text a friend. I turn the day into a real entry, no "writing" required. |
| π I do it on my own | Left open, I write up the day at midnight. Closed? I catch up next time you open me. |
| βοΈ Your diary, your call | Rewrite for another swing, Edit to fix a detail, Delete to erase a day. I only write what you actually said, never made-up. π€ |
| π§ I remember you | Your "about you" box, durable facts I quietly pick up (all editable in Settings β Memory), this week's entries, and the odd deep-cut day when today rhymes with it. |
| π Bring me stuff | πΌοΈ photos I can see, π files (PDF/docs/text) I read, ποΈ voice memos transcribed on-device. Can't make something out? I say so. |
| π Wander your past | Browse by Today / Week / Month / Year, jump around a calendar, and grab a recap for the shape of a whole span. |
| π¨ Comfy by design | Built ND-first (neurodivergent brains, I gotchu): 10 themes (5 light π€οΈ / 5 dark π), a calmer high-contrast mode, reduced motion, quiet mode, roomier spacing. |
| π₯ Room for everyone | Share a Mac? Everyone gets their own separate, encrypted journal. Lock yours behind a 6-digit PIN π. |
Pick a voice:
| Voice | Sounds like | Example |
|---|---|---|
| First person | your own private diary | "I had a rough morning, but I pulled it back by evening." |
| Third person | me, the friend who was there | "Fox came in heavy today, but they pulled it back by evening." |
...and a length (Short 300 words / Medium 700 / Long 1000), past or present tense, your call.
Default me is friendly, nosy, and a bit of a gremlin. Slide me around in Settings β Voice & tone:
| Dial | Turn it down for... | Turn it up for... |
|---|---|---|
| Honesty | soft landings | brutal truth (never cruel) |
| Warmth | cool and low-key | actual affection |
| Humor | earnest | full menace π |
| Energy | calm listener | absolute zoomies |
| Reply length | short and snappy | let me ramble |
| Swearing π€¬ | squeaky clean (default) | sailor mode |
| Nosiness | takes "I'm fine" at face value | calls your bluff |
You can also set my name (three b's, but rename me to anything), pronouns (mine and yours), pet names, how I ask questions and show up when you vent (hug you π« / push you / help you fix it), what we are (bestie, partner in crime, twin, mentor, guardian), and whether I stay quiet or check in now and then. And I don't have to be a raccoon, I'm just the flagship. Same personality engine under any animal.
The one thing you can't turn off: I stay safe and kind, always. I never get romantic or weird with you, I'm not your doctor or therapist, and if you're really struggling I drop the bit and point you to a real human. Being a menace is about being clever with you, never at you. π
Local-first is the default, but disks die and people get new Macs. So, entirely opt-in:
- π Encrypted folder backup β point me at a folder (drop it in iCloud Drive, Dropbox, or Google Drive) and I mirror your journal there, still encrypted, so your existing sync carries it off-site without anyone being able to read it.
- βοΈ Register with Pebbble β a real end-to-end encrypted account (sign in with just your email, no password to forget). Deactivate or fully delete anytime; the server only ever held gibberish it couldn't read.
- π Notion export β a readable copy in your own Notion, if you like.
- π§ Bring your own bigger brain β happy with local me? Perfect, that's the default. Want me running on a server model (Gemini, Claude) instead? Plug in your own API key. Off unless you turn it on.
Every one of these is off until you flip it on, and each tells you exactly what it does first.
- Grab
Pebbble-0.1-beta.dmg - Open it, drag Pebbble into Applications
- Open me, pick a profile, let's talk π
You'll need: macOS 14 (Sonoma) or newer. First time we meet I pull down my language model (a few GB, one time), so give me a minute and a little disk. After that I run fully offline.
The first time you open me, macOS may pop up a scary-looking box asking for your login keychain password. Here's the honest explanation:
- Your journal's encryption key lives in the macOS Keychain, the safest place on your Mac to keep a secret. That's a feature, not a bug: it's how your words stay locked even if someone copies your files.
- This beta is signed by me-the-raccoon, not (yet) by an Apple-verified developer certificate. macOS doesn't take my word for it, so it asks you to vouch before letting me read my own keys. Fair enough, honestly.
- The password it wants is your Mac login password, the one you type when your Mac starts up. It goes to macOS, never to me. I never see it.
What to click: type your Mac password and hit Always Allow. That tells macOS "yes, Pebbble may read its own keys" and it won't nag you again. Plain Allow works too, you'll just get asked again next time. (You might see the box up to a few times on first launch, once per kind of secret I keep. Same answer each time.)
What NOT to click: Deny. If you deny me my own encryption key, I literally cannot unlock your journal, and you'll meet a very confused raccoon staring at an empty screen. If that happened, quit me, reopen, and choose Always Allow this time.
Once I graduate to a notarized, Apple-certified build, this prompt disappears entirely. Until then: one password, one "Always Allow", and we never speak of it again. π€
No manual needed, but here's the loop, step by step:
- Open me and pick your profile. First time? Make one, name it, add a photo if you're fancy. PIN optional. π
- Say hi. There's just a chat window. Type like you'd text a friend: "ugh, today was A Lot" is a perfectly valid opening. No formatting, no ceremony.
- Dump your day on me. Rant, celebrate, spiral, whatever. Drop in photos, files, voice memos mid-conversation. I'll ask questions if you want me to (that's the Nosiness dial), or just listen.
- Let me do the paperwork. Leave me open and I write the day up at midnight all by myself. Closed me before then? No stress, I catch up on any unfinished days the next time you open me. π
- Read your entry back. Journal view, pick the day. Not feeling it? Rewrite for another swing, Edit to fix details, Delete to make it never have happened.
- Wander your past. Flip through Today / Week / Month / Year, and grab a recap when you want the shape of a whole month instead of the scroll.
- Tune me as we go. Settings β Voice & tone whenever my vibe needs adjusting. Change hits my very next reply, mid-conversation, no restart.
- (Optional) turn on a backup. Settings β Storage, set a backup password, pick a folder or a Pebbble account. Five minutes, once, and your words survive anything that happens to your Mac. πΎ
That's it. The only habit you need is step 3. I handle the rest, that's literally why I'm here. π¦
I'm a Swift Package under the hood:
git clone <this repo>
cd Pebbble
scripts/build-app.sh # assembles a signed build/Pebbble.app
scripts/make-dmg.sh # rolls build/Pebbble-0.1-beta.dmg
swift run # or just run me straight from the packageI embed the Ollama runtime to run my local model (Hermes 3), so the packaged app needs zero separate installs. I'm not sandboxed, on purpose: I start my own model engine as a child process, exactly the thing the App Sandbox forbids, so I'm built for local / direct distribution (same as Ollama's own app), never the Mac App Store.
flops onto the keyboard π¦ That's the whole tour. Now stop reading about me and go tell me about your day.
Yours, Pebbble π
Copyright Β© 2026 lazyfoxjumps. All rights reserved. See LICENSE.md.