Skip to main content

Terminal dashboard for tracking what you're working on

Project description

whatdoing

Terminal dashboard for tracking what you're working on. It shows your projects in one place, lets you drill into any one, and surfaces live data such as git activity, Docker status, and last modified files without leaving the terminal.

It is most useful when you are juggling several active projects across one or more machines.

Uses

  • tracking many active repos from one terminal dashboard
  • keeping one lightweight project record per directory in plain Markdown
  • checking status, next action, and project health without opening every repo
  • maintaining a scratchpad and journal beside the dashboard
  • staying oriented across frequent context switches

Fit

Best for:

  • a terminal-first project dashboard
  • one overview file per project that you can still edit directly
  • live project signals such as git state, container state, and file freshness
  • a lighter-weight alternative to a full team PM system

Less useful for:

  • a web app or GUI-first project tracker
  • an issue tracker for large teams
  • a system that hides its source files from you
  • a single-project workflow with no need for cross-project overview

Start

Install with pipx:

pipx install whatdoing

Or with pip:

pip install whatdoing

Create the smallest working setup:

mkdir -p ~/.whatdoing ~/projects
printf '%s\n' 'base_path: ~/projects' > ~/.whatdoing/config.yaml

Launch:

whatdoing

Success criteria:

  • the dashboard opens in your terminal
  • each subdirectory in ~/projects appears as a project row
  • dimmed rows are still valid; they just do not have an overview.md yet
  • press e inside a project to open or create its overview file

Compatibility

  • Tested: Linux terminals
  • Likely works: macOS and WSL
  • Windows native: use WSL for the best current experience

No special shell is required (bash, zsh, and similar all work). whatdoing is a normal Python CLI app.

If your system is not the default target:

  • if pipx is missing, install it first with python3 -m pip install --user pipx
  • if your projects are not under ~/projects, set base_path to the correct directory
  • if git is missing, git widgets will simply show a fallback state
  • if Docker is not installed or reachable, Docker widgets will also fall back cleanly

Launch

whatdoing expects one base directory where each subdirectory is a project. A simple layout looks like:

~/projects/
  my-app/
  website/
  side-project/

You do not need to create overview.md files before launch. Project directories still appear in the dashboard without them, and you can create the overview from inside the app.

Legacy overview filenames _OVERVIEW.md, PROJECT.md, and project.md are still supported for reading.

The overview file is plain Markdown with YAML frontmatter. whatdoing reads it as the project record, and you can edit it in your normal editor.

Config

Smallest config:

base_path: ~/projects

Optional keys:

# Subdirectory within base_path where projects live
overview_dir:

# Preferred text editor (defaults to micro, then $EDITOR, then nano)
editor: nano

# SSH host for remote docker status checks
docker_host: myserver

Format

If you prefer to create an overview.md yourself instead of creating it from inside the app:

mkdir -p ~/projects/my-app
cat > ~/projects/my-app/overview.md << 'EOF'
---
Status: Active
Priority: High
Next_action: Build the thing
Type: app
---

# My App

## What is this?

Description of the project.

## Blockers

None
EOF

Commands

whatdoing                 Dashboard - show all projects
whatdoing <name>          Jump to a project (fuzzy match)
whatdoing scratch         Open scratchpad
whatdoing journal         Open journal
whatdoing guide           User guide
whatdoing --help          This message

Keys

Dashboard

Key Action
Enter Open selected project
/ Filter projects by name
s Open scratchpad
l Open journal
? Help
q Quit

Project View

Key Action
Click / Enter on section Edit section inline
Ctrl+S (in editor) Save section
Esc (in editor) Cancel edit
a Add new section
e Open full file in text editor
u Edit status
p Edit priority
n Edit next action
w Log work to journal
b Back to dashboard

Fields

Each overview.md supports these frontmatter fields:

---
Status: Active          # Shown color-coded in dashboard
Priority: High          # High / Medium / Low
Next_action: Do thing   # Shown in dashboard and project view
Type: app               # Free text label
Energy_required: high   # Shown in project view
Time_estimate: 2h       # Shown in project view
code_path: /path/to/src # For git status checks
docker_name: my-container  # For docker status checks
Tags:
  - tag1
  - tag2
---

Files

What Where
Config ~/.whatdoing/config.yaml
Scratchpad ~/.whatdoing/scratchpad.md
Journal ~/.whatdoing/journal/YYYY-MM-DD.md
Session state ~/.whatdoing/state.json

Override the config directory with WHATDOING_HOME env var.

Support

This project is open-source and free to use.

If support or implementation help would be useful, open an issue titled commercial support interest.

Audit

Run the repo audit before publishing or opening a PR:

./scripts/public-safety-audit.sh

If you want a local pre-commit guard for staged files:

./scripts/install-public-safety-hook.sh

The audit scans for generic home-path leaks, SSH/scp-style host references, obvious secret-key markers, and suspicious local artifact filenames such as transcript dumps. If a match is intentional, add a path glob to .public-safety-allowlist. If you want the audit to catch your own machine names or local path fragments, put custom regex patterns in .public-safety-local-patterns and keep that file local only.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

whatdoing-2.3.2.tar.gz (35.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

whatdoing-2.3.2-py3-none-any.whl (42.6 kB view details)

Uploaded Python 3

File details

Details for the file whatdoing-2.3.2.tar.gz.

File metadata

  • Download URL: whatdoing-2.3.2.tar.gz
  • Upload date:
  • Size: 35.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for whatdoing-2.3.2.tar.gz
Algorithm Hash digest
SHA256 55a7958b9677d289e80118f77f52665690ca608eaa0deaeb0f11a3dcb6b07cb6
MD5 a7483f4c16f9c272e44f0f8cef7cf5e2
BLAKE2b-256 8089efa90a42edb251cfc854c6019145bcff3f32263e1d8e951d46db5072e9cf

See more details on using hashes here.

File details

Details for the file whatdoing-2.3.2-py3-none-any.whl.

File metadata

  • Download URL: whatdoing-2.3.2-py3-none-any.whl
  • Upload date:
  • Size: 42.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for whatdoing-2.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b2cade23382d696b5a4a9cfb51d43ac37672a90855b77c8994e059359350bc1e
MD5 6218f0707c1b61fe0377cf1f5361833f
BLAKE2b-256 dcbaca1feca174c467317281a29032128673444baf19d8bb6172526010d5a688

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page