Skip to content

edodusi/bamboo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bamboo

Minimal CLI for BambooHR time tracking. Clock in, clock out, check status — from your terminal.

Install

go install github.com/edodusi/bamboo@latest

Or build from source:

git clone https://github.com/edodusi/bamboo.git
cd bamboo
go build -o bamboo .

Setup

  1. Generate an API key in BambooHR: Account → API Keys
  2. Create a .env file (or export env vars):
cp .env.example .env
# Edit .env with your values
Variable Description
BAMBOO_API_KEY Your BambooHR API key
BAMBOO_COMPANY Company subdomain (from https://XXX.bamboohr.com)
BAMBOO_EMPLOYEE_ID Your numeric employee ID

Usage

bamboo in        # Clock in now
bamboo in 14     # Clock in at 14:00
bamboo in 9am    # Clock in at 9:00
bamboo out       # Clock out now
bamboo out 17:30 # Clock out at 17:30
bamboo log 2026-06-18 9:00 14:00            # Record a worked interval on a past date
bamboo log 2026-06-18 9am 2pm "half day"    # ...with an optional note
bamboo st        # Show today's entries
bamboo w         # This week's summary
bamboo lw        # Last week's summary
bamboo m         # This month's summary
bamboo lm        # Last month's summary
bamboo team      # Direct reports — this week (alias: t)
bamboo team lw   # Direct reports — last week (also: m, lm)

Logging a past day

bamboo in / bamboo out always apply to today. To fill in a day you missed — for example a partial-PTO day where BambooHR's auto-fill leaves the worked hours blank — use log with an explicit date:

bamboo log DATE START END [NOTE]
bamboo log 2026-06-18 9:00 14:00

This posts a single complete entry (date + start + end) to BambooHR in one atomic call, so it can't leave a dangling open clock-in. The date must be YYYY-MM-DD, and end must be after start.

The team command fetches direct reports from BambooHR at runtime (filtered by supervisor). No extra configuration required — your API key must have visibility into their timesheets.

Weekly and monthly summaries (w, lw, m, lm, team) annotate days with approved time-off pulled from BambooHR — Vacation, Sickness, Public Holiday, Work Travel, Nursing, etc. — so the totals are easy to reconcile against expected working days.

Mon Apr 6     0m       [Public Holiday (1d)]
Thu Apr 9     9h30m    [Work Travel (1d)]
Fri Apr 17    38m      [Nursing (4h)]
Total         35h35m   (+2 PTO)

Time formats: 9am, 9:00am, 9 am, 9:00, 14, 17:30

Shell aliases

Add to your ~/.zshrc:

alias bi="bamboo in"
alias bo="bamboo out"
alias bs="bamboo st"
alias bw="bamboo w"

License

MIT

About

Minimal CLI for BambooHR time tracking

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages