Ubunatic Coding

Local Git Workspace Manager

uman — your workspace manager

Uman Manages Apps Nicely — a Go CLI to coordinate local Git workspaces. Inspect Git status, run commands concurrently across repos, enforce licensing, and sync project websites.

uman demo

Why uman

One directory of Git repos, one set of checks — instead of N bespoke scripts.

⚠️

The problem

Working across a directory of independent local Git repos means the same checks — status, agent-harness scaffolding, licensing, website publishing — get re-solved per project, usually with a one-off shell script that only the author remembers how to run.

Nothing ties the repos together, so drift goes unnoticed until it breaks something: a missing AGENTS.md, a stale license header, a site sync that silently clobbers another project's CSS.

🎯

The fix

uman turns that coordination into a single, boring CLI instead of N bespoke scripts. One .uman.toml lists the managed projects.

status, run, doctor, reuse, and website sync/serve apply the same checks consistently across all of them.

Core Capabilities

Modular developer utilities that bring order to project directories without getting in your way.

📊

Status Dashboard

Gather uncommitted files, branches, and remote divergence (ahead/behind commits) across all projects in a single unified view.

Parallel Run Pool

Execute custom shell scripts or commands in parallel (`-j/--jobs`) across projects, buffer output sequentially, and get a diagnostic file summary report.

🩺

Workspace Doctor

Inspect workspace health: verify agent harness scaffolding (AGENTS.md, symlinks, harnez conventions) and prevent cross-repo website CSS collisions.

⚖️

REUSE Licensing

Initialize template `REUSE.toml` files dynamically resolving Git metadata, fetch missing SPDX texts, and lint project licensing compliance.

🌐

Website Serving

Synchronize static files to a main publishing repository and spin up a lightweight, zero-dependency HTTP server to preview your sites. If a leftover session is still holding the port, uman frees it automatically before binding.

Quick Start

Set up your local workspace directory in seconds.

setup.sh
# 1. Initialize Uman configuration (creates ~/projects/.uman.toml)$ uman initScaffolded config at ~/projects/.uman.toml
# 2. View current Git status across all projects$ uman statusNAME          BRANCH    REMOTE             AHEAD  CHANGES  STATUS
uman          main      origin/main        0      0        OK
wayreel       main      origin/main        2      1        Ahead/Dirty
# 3. Check agent scaffolding & website health$ uman doctorHarness Diagnostics:
  ok   wayreel/
  ok   emojig/
20 project(s) checked, 0 failed.
# 4. Concurrently run commands across all active projects$ uman run -j 4 -- git status
# 5. Spin up HTTP web server to serve your website$ uman serve websiteServing /home/uwe/projects/uman/website on http://localhost:8080