A beautiful terminal user interface (TUI) for Muster - a team productivity tool for daily standups, attendance tracking, leave management, and project organization.
- 📝 Standups: Submit and view team standups (scoped to projects)
- 📊 Attendance: Check in/out with time tracking and view team status
- 🏖️ Leave Management: Request (sick, casual, paid, unpaid, WFH), review, and cancel leaves
- 📂 Projects: Create projects, manage members, configure per-project settings
- 👥 Team Management: Invite members, manage roles
- 🔑 Password Management: Change your own password or reset a member's password (admin)
- 🔐 Authentication: Login, registration, and org invitations
- 🎨 Beautiful TUI: Built with Bubble Tea and Lip Gloss
- 🔒 Role-based commands: CLI only shows commands you have access to
brew install beamlabco/tap/mustergit clone https://github.com/beamlabco/muster.git
cd muster/cli
make build
./bin/musterLaunch the CLI:
musterType / to see available commands. Commands are filtered by your role — admins see all commands, members see only what they have access to.
| Command | Description |
|---|---|
/login |
Sign in to your account |
/signup |
Create a new account |
/join |
Join an organization via invitation |
/standup |
Submit your daily standup |
/standup today |
View team standups for today |
/standup history |
View your standup history |
/checkin |
Check in for the day |
/checkout |
Check out for the day |
/attendance |
Mark your attendance |
/attendance today |
View team attendance for today |
/attendance history |
View your attendance history |
/leave |
Request a leave (sick, casual, paid, unpaid, wfh) |
/leave list |
View team leaves |
/leave cancel |
Cancel a pending leave |
/project |
View your projects |
/team |
View team members and roles |
/password |
Change your password |
/whoami |
Show current user info |
/help |
Show available commands |
/quit |
Exit the application |
| Command | Description |
|---|---|
/project create |
Create a new project |
/project settings |
Configure project settings (name, summary time, timezone, Discord webhook) |
/project members |
Add or remove project members |
/role |
Update a user's role |
/invite |
Invite a team member |
/settings |
Configure organization settings |
/reset-password |
Reset a member's password |
| Command | Description |
|---|---|
/leave review |
Review and approve/reject pending leaves |
Tab: Accept autocomplete suggestion↑/↓: Navigate suggestions←/→: Cycle options (e.g., leave type)Enter: Execute command / submit formEsc: Go back / cancelCtrl+C: Quit
Config is stored at ~/.muster/config.yaml:
user:
id: 1
email: user@example.com
name: John Doe
role: primary
organization:
id: 1
name: Acme Corp
status: active
auth:
token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
api:
base_url: https://api.muster.stagify.xyzmake build # Build the CLI binary
make run # Run the CLI directly
make deps # Install dependencies
make install # Install binary to /usr/local/bin
make clean # Clean build artifacts
make test # Run tests
make test-coverage # Run tests with coverage
make lint # Run linters (requires golangci-lint)
make fmt # Format code
make build-all # Build for all platformsReleases are automated via GitHub Actions and GoReleaser. Pushing a version tag triggers a build that publishes binaries to GitHub Releases and updates the Homebrew tap.
# Create and push a release tag
git tag v0.2.0
git push origin v0.2.0To test a release locally without publishing:
goreleaser release --snapshot --cleanBinaries are built for:
- macOS (Intel & Apple Silicon)
- Linux (amd64 & arm64)
- Windows (amd64)
See the main project LICENSE file.