Skip to content

Git over HTTPS

BeanHub speaks Git Smart HTTP. If git clone works against GitHub over HTTPS, it works here. There is no SSH remote (the clone dropdown says coming soon).

https://app.beanhub.io/repos/<username>/<repo>.git

Copy it from the book Clone button. Connect-only repositories do not host Git; they have no clone URL.

Git uses HTTP Basic. The password is an access token, not your account password. The username can be your BeanHub username. Create the token under Access tokens with Git HTTP Read and write (or Grant All).

Older BeanHub accounts could clone with the account password. Use a token now so you can revoke it without changing the password.

Terminal window
git clone "https://USERNAME:${BEANHUB_TOKEN}@app.beanhub.io/repos/USERNAME/REPO.git"
cd REPO

Putting the token in the remote URL leaks it into .git/config and shell history. After the first clone:

Terminal window
git remote set-url origin "https://app.beanhub.io/repos/USERNAME/REPO.git"

Use a credential helper for later fetches.

Terminal window
git clone https://app.beanhub.io/repos/USERNAME/REPO.git
cd REPO
# add main.bean and includes
git add .
git -c user.email="you@example.com" -c user.name="You" commit -m "Initial book"
git push -u origin master

The empty-book help text uses master. If you prefer main, push that branch from an empty repo as your first branch.

  • main.bean exists at the repository root.
  • include paths resolve.
  • Beancount loads the book without error. BeanHub checks main.bean in a sandbox before it accepts the push.
  • Private free books stay under 1,000 entries. Paid and public books: 100,000. Over quota, the website shows a quota page instead of applying the change.

If Git prints a Beancount error, fix the files and push again. You cannot skip that check.

Refresh the website. Journal and reports update from the new commit. Import matching runs when .beanhub/imports.yaml is present.