Every GitHub account grows exactly one tree .
Ten years of an account is not a green calendar. It is a biography, with growth spurts, obsessions, long silences and comebacks. This grows that biography into a bonsai: the username is the seed, the history is the shape, and nobody else can ever grow yours.
Grow a tree from a GitHub history
Type a username. Nothing here is drawn by hand: the account is the seed, the history is the shape, and the same name always grows the same tree.
Every account grows exactly one tree. Nobody else can grow yours.
- Account age
- -
- Contributions
- -
- Longest streak
- -
- Current streak
- -
- Style
- -
- Species
- -
- Pot
- -
What the tree is reading
Everything is derived, nothing is chosen. There is no Math.random() anywhere in the engine: the same account with
the same history produces the same tree, byte for byte, on every run.
- Account age
- Trunk height, thickness and branching depth
- Contributions
- How dense the crown grows
- Streaks
- Sakura blossoms at 7, 30, 100 and 365 days
- Silences
- Deadwood: jin, then a shari scar, then an uro hollow
- Languages
- The colour of the canopy, one hue per era
- Rhythm
- The style: metronome, storm or hermit
- Flagships
- One trunk, twin trunks, a clump or a forest
- The calendar
- Today: leaves flush in spring and frost in winter
Grow it on your own profile
The page above sees public data only. The Action sees your private contributions and your exact language bytes, and it re-grows the tree every night. Drop this in the profile repository, the one named after your username:
name: bonsai
on:
schedule:
- cron: '0 3 * * *' # re-grow daily
workflow_dispatch:
permissions:
contents: write
jobs:
grow:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: egorthinks/git-bonsai@v1
It writes four files: bonsai.svg, bonsai.png, a wind loop and a seed to today timelapse. Or skip CI
entirely and run it once:
$ npx git-bonsai --user yourname --token $GITHUB_TOKEN # real data
$ npx git-bonsai --synth yourname # offline demo