Friendship takes work.
Like a tree, it requires nurture,
effort, and time to grow.
Friendships aren't pieces of data to keep track of. They're living, breathing organisms. Nurture your own friendship trees, go fishing, meet little creatures, and appreciate the canopy of friends you've made on your journey.
Free and open source — read the code, fork it, run your own. ♡ Support this project
Who's tending
the forest?
With your own API key, an AI writes a short living profile for your closest friends. Your browser calls the provider directly — no server in between, the key is kept only for this session, and the cost (a few cents for ~30 profiles) lands on your key. Skip it and you still get the full forest.
Who are your
friends?
Upload as many sources as you'd like — the more you upload, the richer your forest will be. Start with the quickest ones; you can always upload more after creating your forest. Your data stays YOURS. There is no server and no account: everything is parsed and stored on this device only, and you can delete it all whenever you like.
Export your contacts
- Google: contacts.google.com → select all → Export → Google CSV
- Apple: Contacts app → select all → File → Export → Export vCard
- Drop the files below — .csv and .vcf both work, several at once is fine
Got both a Google export and an Apple vCard? Drop them both — people in both files are merged into one tree, not duplicated.
On a Mac?
Add your real texting history.
Websites can't read your texts (good!). This helper runs on your Mac, offline — it counts who you text and when, writes one summary file, touches nothing else.
- Open Terminal, paste the command, press return
- Grant Full Disk Access if asked, run again
- Drop the friend-forest-messages.json it makes here
python3 helper/extract_messages.py ~/Desktop/friend-forest-messages.json
The helper lives in this repo's helper/ folder — it counts who you text and when, writes one summary file, and never uploads anything.
Plant friends
by hand
Name is all that's required — everything else just makes their tree richer. Groups (like book club or college) become groves in your forest.
Add your social
circles
Every big platform will hand you your own data. Drop whatever arrives — follow lists become trees, message threads make them tall.
- Instagram: Settings → Accounts Center → Your information and permissions → Download your information → JSON. Use followers/following and messages.
- Facebook: same Accounts Center download → JSON. Use friends.json and messages.
- X: Settings → Your account → Download an archive → drop following.js / follower.js.
- Anything else (Discord, Strava, Goodreads…): a .csv or .json with a name column works.
Unzip the export first and drop the files inside. Only names, counts and dates are read — never the messages themselves, and nothing leaves this browser.
WhatsApp chats
- Open a chat → tap the name → Export chat → Without media
- Save / AirDrop the .txt here (unzip if needed), repeat for your favorite people
LinkedIn connections
- LinkedIn → Settings → Data privacy → Get a copy of your data → larger archive
- The email takes about a day — your progress is saved, come back and drop Connections.csv
Time to plant.
Here's what your forest will grow from:
Enjoying this? ♡ Support this project — it keeps the forest free for everyone.