Vault Pet
approvedby Elliott Park
A pixel pet that grows as you write. Characters, links and new notes become XP, with daily quests, badges, streaks and accessories to unlock. - This plugin has not been manually reviewed by Obsidian staff.
Vault Pet
A pixel partner that grows as you write. Pick one of five little friends, and every character you type, link you make and note you create feeds it. It hatches from an egg and grows into an adult. It strolls along the bottom of your editor, sits down to write with you while you type, cheers when you link two notes, and reminds you about lunch, breaks and bedtime.
Most pet plugins just sit there. This one only grows when your vault does.


Screenshots show the Korean UI. The plugin speaks English and Korean and follows Obsidian's language.
Features
- Choose your partner: five friends, each with its own look, personality, lines, cry and XP perk
- Grows from your writing: egg → baby → kid → teen → adult, with levels in between
- Works alongside you: strolls along the bottom of the editor, then sits down and writes with you while you type. Each friend has its own work prop and habits
- Reacts to what you do: jumps when you add a link, waves at a new note, celebrates every 1,000 characters a day
- Looks after you: lunch and dinner reminders, a stretch after 90 minutes without a break, a nudge to go to bed after 1 AM
- Dex: take another friend's egg or switch partners any time. Resting friends keep their progress
- Game layer: 3 daily quests, 29 badges, daily streaks, 11 accessories and 7 body colors to unlock
- Pet house in the sidebar with quests, the dex, badges, wardrobe and writing stats
- Pet card you can drop into any note with a
vault-petcode block - Private: note contents are never stored or sent anywhere. No network access
Meet the friends
On first run you pick one of five partners. They all grow on your notes, but each one is good at something different.

| # | Friend | Type | Personality | Perk | While you write |
|---|---|---|---|---|---|
| 001 | ✒️ Inky, an ink drop | Ink | Diligent and a little shy | +20% writing XP | Scribbles in a notebook with a quill |
| 002 | 🧶 Purrl, a yarn cat | Yarn | A curious little troublemaker | +30% link XP | Types on a tiny laptop, tail swishing |
| 003 | 🌱 Sprig, a seedling | Sprout | Easygoing but steady | +50% streak bonus | Ticks off a checklist |
| 004 | 🔥 Ember, a baby dragon | Flame | A fired-up idea machine | +50% new-note XP | Writes on a scroll, sparks flying |
| 005 | 📚 Dewey, a book owl | Wisdom | A night-owl bookworm | +30% quest rewards | Reads a thick book, peeking over the top |
Every friend has its own egg, its own home in the pet house, its own way of talking (Inky is shy, Purrl mews and purrs, Sprig takes it slow, Ember roars, Dewey hoots), a short 8-bit cry it sometimes lets out when you pet it, and a little habit it does when it's bored: Inky drips a drop of ink, Purrl swishes its tail, Sprig shakes out a leaf, Ember puffs smoke and Dewey tilts its head.
As they grow they change: Inky gets a golden pen nib, Purrl a collar with a bell, Sprig a bud and then a flower, Ember horns and bigger wings, Dewey taller ear tufts.
How XP works
XP = characters written ÷ 20 + links × 5 + new notes × 15 + bonus (times your partner's perk)
Level = √(XP / 25) + 1
| Stage | XP needed |
|---|---|
| 🥚 Egg | 0 |
| 🐣 Baby | 1,000 |
| 🌿 Kid | 8,000 |
| ✨ Teen | 30,000 |
| 👑 Adult | 100,000 |
What counts:
- Characters: text without spaces, Markdown symbols, URLs or frontmatter. Code counts too.
- Links:
[[wikilinks]],![[embeds]]and[markdown](links), but not the ones inside code or%%comments%%. - New notes: a note counts once it has at least 10 characters.
What doesn't count, so you can't farm XP:
- Only new highs count. For every file the plugin remembers the most characters and links it has ever had, and only growth past that earns XP. Deleting and retyping, undo/redo or cut and paste won't earn anything.
- Pastes are capped at 3,000 characters and 30 links per file per change.
- Bulk changes are capped. Copying a folder of notes in, or a sync touching dozens of files, earns at most 6,000 characters, 60 links and 10 notes per burst. Changes made while Obsidian was closed earn at most 20,000 characters the next time it starts.
- Ignored entirely: Excalidraw drawings, inline image data (
data:URIs), single lines over 1,000 characters inside code blocks (data blobs), and any folders you exclude in the settings (templates, attachments…).
Starting point. The welcome tour asks how your first partner starts, and you can change it later in the settings:
- Count everything I've written: on first run the vault is read once and your notes are filed under the day they were created. A big vault may start as a teen.
- Start from an egg: only what you write from now on counts.
- Start at a stage I pick: start at that stage's XP, then grow with what you write.
Restarting keeps your badges and items.
Your partner on screen
Your partner lives at the bottom-right of the editor. When you're not typing it takes little walks along the bottom of the editor and wanders back; when you type it sits down right where it is and works with you. Until you drag it somewhere, its home follows that corner as sidebars open and close.

| Action | What happens |
|---|---|
| Click | Pet it (hearts, sometimes its cry) |
| Drag | Move it. Where you drop it becomes its new home |
| Double-click | Open the pet house |
| Right-click | Pet, open the house, the dex, walk around or stay here, quiet for 1 hour, reset position, hide |
| Hover | A status window with level, EXP, progress to the next stage and today's writing |
| Click a bubble | Skips to the next bubble, or jumps to the badge, quest or wardrobe tab it's about |
Speech bubbles look like a game's dialogue box, with your partner's name on a tab and a blinking ▼ once the line has finished typing. Clicks on the transparent parts of the pet go through to whatever is behind it. When XP comes in, +12 XP floats up over its head.
Moods
| Mood | When | Looks like |
|---|---|---|
| ✍️ Writing with you | You typed in the last 20 seconds | Sits down with its work prop, letters float up |
| 👀 Watching | Any activity in the last 5 minutes, including opening notes | Bounces, looks around, goes for walks |
| 🍃 Lazing | 5–20 minutes idle | Breathes slowly, strolls now and then |
| 😪 Sleepy | 20–45 minutes idle | Half-closed eyes, yawns |
| 💤 Asleep | 45+ minutes idle | Flattens out, Zzz |
All the timings can be changed in the settings, and walking can be turned off (Stay here in the right-click menu). As an egg it can't talk or walk yet, so it only wiggles: (wiggle wiggle).
Quiet mode (right-click, command palette or the house) silences bubbles and sounds for an hour.
The dex
The Dex tab in the pet house lists all five friends.

- Take the egg of a friend you haven't met: it becomes your partner and starts from an egg.
- Team up with a friend you've met before: it picks up exactly where it left off.
- Only your current partner grows. A resting friend keeps its XP, level, name, color and accessory until you come back. Badges, items, colors and your streak belong to you, not to one friend, so switching never loses anything.
Game layer
- Daily quests: three new ones every midnight, drawn from writing, linking, new notes, opening notes, petting, taking a break, having lunch and starting before 10 AM. They pay out the moment they're done, and clearing all three adds +100 XP.
- 29 badges: totals for characters, links and notes, a hub note with 20 backlinks, 3,000 characters in a day, streaks, night owl and early bird, marathons, meals, breaks, petting, quests, levels, stages, and meeting and raising friends. On first run, badges your existing notes already earned are awarded quietly all at once.
- Streak: the first thing you do in Obsidian each day pays
20 + streak days × 5XP (up to 90). - 11 accessories: sprout pin, ribbon, glasses, headphones, beanie and scarf unlock with levels. The quill, nightcap, party hat, chef hat and crown unlock with badges. Each friend wears its own.
- 7 colors: each friend's natural color, plus clay, mint, peach and snow that unlock with levels. Midnight (1,000 links) and gold (1,000,000 characters) unlock with badges.
- Sound effects: tiny 8-bit jingles for level-ups, badges, evolutions and links, and each friend's own cry. You can turn them off.
Pet house
Open it from the paw icon in the ribbon, the level in the status bar (🧶 Lv.29 · 27%), or by double-clicking the pet. Click your partner's name to rename it.

- Home: today's characters, links and new notes, your streak, your partner's profile and perk, the growth roadmap, play buttons and recent bonus XP
- Quests: today's quests and the time until new ones
- Dex: all five friends, switching partners and taking eggs
- Badges: when each badge was earned, or how close you are
- Wardrobe: colors and accessories for your partner. New unlocks are marked
NEW - Stats: characters per day for the last 14 days, when you write, all-time totals, where your XP came from, and the notes with the most backlinks (click one to open it)
Pet card in a note
Put this code block in any note to get a live card of your partner there. The Insert pet card command adds it for you. It works well on a home note or in a daily note template.
```vault-pet
```

Commands
| Command | |
|---|---|
| Open pet house | |
| Open the dex (change partner) | |
| Show or hide the pet | A hidden pet still appears in the house and in note cards |
| Toggle walking around | |
| Pet the pet | |
| Toggle quiet mode for 1 hour | |
| Reset pet position | |
| Insert pet card | Inserts a vault-pet code block into the current note |
Settings
Partner, name, language (auto, English, 한국어), show on screen, walk around, size (×1–×5), status bar, pixel font, speech bubbles, small talk, sound, lunch and dinner times, break, sleepy and sleep timings, late-night nagging, starting point, folders to ignore, the welcome tour, reset position, recount from scratch, and erase everything.
Installation
From Settings → Community plugins → Browse, search for Vault Pet.
Manual install: copy main.js, manifest.json and styles.css from the latest release into <your vault>/.obsidian/plugins/vault-pet/, then enable Vault Pet under Community plugins.
Optional pixel font. The UI can use the Galmuri pixel font. Obsidian only installs the three files above, so by default the pet uses your theme's font. If you want the pixel look, copy the fonts/ folder from this repository into the same plugin folder. The plugin picks it up on its own, and the Pixel font setting turns it on and off.
Updating from 0.1. Your pet, its XP, badges and items are all kept. On the first start after updating, the plugin shows the partner picker once: whichever friend you choose takes over everything your pet had grown so far. Close it without choosing and your pet simply becomes Inky.

Privacy
- Notes are only ever read. Their contents are never stored or sent anywhere.
- Why it lists every Markdown file: on first run it reads your notes once to count what you've already written, and at startup it checks which notes changed while Obsidian was closed (by modification time, so unchanged notes aren't read again). Folders you exclude in the settings are skipped.
- All the plugin keeps is, per file path, the highest character and link counts, plus daily and hourly totals, and your friends' names and progress. Everything lives in
.obsidian/plugins/vault-pet/data.json. - No network access.
Development
No build step. The plugin is a single main.js.
node tests/run.js # logic tests without Obsidian (counting, ledger, growth, friends, quests, badges, moods, drawing, both languages)
node scripts/demo-vault.js <folder> # a demo vault on first run (welcome tour and partner picker)
node scripts/demo-vault.js <folder> --seeded --partner=purrl # a partner raised for about three weeks, with three friends in the dex
node scripts/demo-vault.js <folder> --plugin-only # copy the plugin files only, leave the notes alone
main.js
language S (UI strings as [Korean, English]), LINES and SPECIES_LINES (what the friends say)
counting measure(): characters and links in a note
ledger Ledger: per-file highs, daily and hourly totals, budgets for bulk changes
growth computeGrowth(): a friend's record + your writing → level and stage
mood Brain: moods, reminders, reactions to writing
game Gamify: quests, badges, streaks, items, colors, bonus XP, perks
friends SPECIES: the five friends, their perks and palettes
pixel art PetRenderer + ART + EGG: every friend is drawn in code on a 48×48 canvas
sound PetSound: WebAudio jingles and cries
UI PetWidget (walking pet, status window, bubbles), HouseView (sidebar and dex),
PetCard (in notes), WelcomeModal (partner picker), PetSettingTab
styles.css pixel-style UI on top of your theme's colors. The accent follows your partner's color,
and each friend has its own little home drawn in CSS
fonts/ Galmuri pixel font (SIL OFL 1.1), optional
The pet started as Claude Pet, a desktop companion that grows with Claude Code usage. Vault Pet brings it into Obsidian and feeds it your notes instead.
한국어 안내
노트를 쓸수록 자라는 도트 친구예요. 처음에 다섯 친구 중 하나를 파트너로 골라요.
| 친구 | 타입 | 성격 | 특기 |
|---|---|---|---|
| ✒️ 잉키 (잉크방울) | 잉크 | 성실하고 조금 수줍어요 | 글자 경험치 +20% |
| 🧶 냥타래 (실타래 고양이) | 실타래 | 호기심 많은 장난꾸러기 | 링크 경험치 +30% |
| 🌱 새록이 (새싹 요정) | 새싹 | 느긋하지만 꾸준해요 | 출석 보너스 +50% |
| 🔥 모닥이 (아기 용) | 불꽃 | 열정 넘치는 아이디어 뱅크 | 새 노트 경험치 +50% |
| 📚 듀이 (책 부엉이) | 지혜 | 밤샘 독서가, 척척박사 | 퀘스트 보상 +30% |
- 글자를 쓰고(20자 = 1XP), 링크를 걸고(5XP), 새 노트를 만들면(15XP) 경험치가 쌓여 알에서 어른까지 자라요. 친구마다 특기만큼 더 받아요.
- 편집 화면 아래를 산책하다가 글을 쓰면 그 자리에 앉아 같이 써요. 잉키는 공책, 냥타래는 노트북, 새록이는 체크리스트, 모닥이는 두루마리, 듀이는 두꺼운 책을 펴요.
- 마우스를 올리면 게임 같은 상태 창(레벨·EXP·진화까지 남은 정도·오늘 쓴 양)이 떠요. 말풍선에는 이름표가 붙고, 다 말하면 ▼ 가 깜빡여요.
- 하우스의 도감에서 다른 친구의 알을 받거나 파트너를 바꿀 수 있어요. 쉬는 친구는 자란 만큼 그대로 기억하고, 업적·아이템·출석은 친구가 아니라 나에게 남아요.
- 일일 퀘스트 3개, 업적 29개, 출석, 꾸미기 11종과 몸 색깔 7종이 있어요.
- 파일마다 가장 많았던 글자·링크 수보다 늘어난 만큼만 세서, 지웠다 다시 쓰기로는 오르지 않아요. 붙여넣기와 한꺼번에 들어온 변경에도 상한이 있어요.
- 0.1 에서 업데이트하면 파트너 고르기 창이 한 번 떠요. 고른 친구가 지금까지 키운 성장을 그대로 이어받아요.
- 노트에
vault-pet코드 블록을 넣으면 그 자리에 파트너 카드가 떠요. - 노트 내용은 저장하지도 보내지도 않아요. 경로별 숫자와 날짜별 합계, 친구들 기록만
data.json에 남아요. - 도트 글꼴(갈무리)을 쓰려면 이 저장소의
fonts/폴더를 플러그인 폴더에 복사하세요. 없으면 테마 글꼴로 보여요.
License
MIT. The optional pixel font is Galmuri under the SIL Open Font License 1.1 (fonts/OFL.md).
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.