Git Branches
A branch is a separate line of history inside the same Git repository. Each one holds its own version of the files, and the developers working on iHorizon add their commits to the branch that suits the change they are making. Your clone has exactly one branch checked out at a time, so the code sitting in your folder, and the code your bot runs, is whatever that branch contains. Switching branches rewrites those files to match the branch you moved to.
The iHorizon repository is split into two branches you can host from: dev and production. Cloning the repository as described in the prerequisites puts you on dev, the default branch.
dev
dev is the beta version of iHorizon. Updates land here as they are written, so you get new features and fixes first, and you may run into stability regressions in exchange.
Pick this branch if you want the latest work and you do not mind restarting your bot when something breaks.
production
production is the stable version of iHorizon, the one we run on our own public instance. Everything on this branch is vetted to follow the best stability practices before it gets there.
Pick this branch if your bot serves real servers and you would rather wait a little for a change than debug it.
Switching branches
From the root of your cloned repository:
# Switch to the stable branch
git checkout production
# Line the dependencies up with the branch you are now on
bun i
Your config.ts file is not tracked by Git, so it stays in place when you switch.
What happened to ownihrz
We used to maintain a third branch, ownihrz. We deleted it for good on Saturday 11 July 2026 at 9:00 PM Paris time, and dev and production are the only two branches left.
The branch had fallen three weeks behind by the time we announced its sunsetting, and it was missing important fixes. Backporting every change into it took time we cannot afford. The branch also lost its purpose: it existed for the iHorizon OWNIHRZ program, which let you pay 2 € a month for a personalized bot matching your server's identity, and that program ended a while ago.
Moving off ownihrz
To know which branch the repository you cloned sits on, run this from the root of that repository:
If the output contains the following line, your clone is still on the deleted branch and has nothing left to pull from:
Start by deciding which of the two remaining branches you want, dev or production, then create it from the remote:
# Replace production with dev if you prefer the beta version
git switch -c production origin/production
Then delete the old branch and line the dependencies up:
Your instance now follows a branch we still update, and git pull works again.