Personal command center for GitHub — one Kanban board that stays in sync with every project you contribute to, plus a full project management CLI.
Project description
Focal
Your personal command center for GitHub — one Kanban board that stays in sync with every project you contribute to, plus a full project management CLI for running delivery end-to-end without leaving the terminal.
Built with AI. Best used with AI. Focal ships with
AGENTS.mdso any capable AI agent (Claude Code, Cursor, Codex) can set it up, run PM commands, and manage your backlog on your behalf — no manual steps required.
The problem
If you contribute to many GitHub repositories, each with its own project board, planning your day means opening every repo board one by one. By the time you've done the rounds, you've lost 20 minutes and still don't have a single prioritized view of your work.
And when it comes to planning a release — creating epics, estimating stories, building an iteration schedule, logging retros — you're either doing it in Jira (context switch) or in your head (no record).
Focal solves both. One personal Kanban board that syncs everywhere, plus a PM CLI that manages your entire delivery lifecycle in GitHub and markdown — no external tools, no context switching.
What it does
Board sync — open issues assigned to you flow automatically onto one personal Kanban board. Status changes you make there push back to every origin project. Closed or unassigned issues move to Done on their own.
PM CLI — epics, stories, iteration planning, retros, and velocity — all in GitHub issues and markdown, without leaving the terminal.
Install
bash <(curl -fsSL https://raw.githubusercontent.com/leninmehedy/focal/main/install.sh)
focal board setup
The installer handles Python, pipx, and focal-cli in one step.
The wizard creates your GitHub Projects board automatically and asks which repos to watch.
Set up with an AI agent
Open Claude Code (or any agent that can fetch a URL) and paste:
Set up Focal from https://raw.githubusercontent.com/leninmehedy/focal/main/AGENTS.md
The agent installs Focal, runs the wizard, verifies sync, and sets up the hourly scheduler — no manual steps required.
Once set up, you can drive everything in plain language:
- "Add leninmehedy/focal to my sync"
- "Plan I1 — 2-week sprint, me and @bob at 8 SP each, starting Monday"
- "What's our iteration status?"
- "Log the I1 retro — we hit our goal, estimates were a bit off"
Docs
| User Guide | Install, board sync, PM CLI, scheduler, troubleshooting |
| PM Guide | Full project management workflow — design docs, epics, delivery cycle |
| Testing Guide | Beta testing — test cases for every command |
| AGENTS.md | Full command reference for AI agents |
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file focal_cli-1.13.0.tar.gz.
File metadata
- Download URL: focal_cli-1.13.0.tar.gz
- Upload date:
- Size: 88.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1d7bba0602e2b0201daeede18e3d5774f18b2c1f4aa3d3395b239073cec50d9
|
|
| MD5 |
ba91b16a538523c77205ca659625befb
|
|
| BLAKE2b-256 |
5cf3e5ff3ad0f146745674dff944978f82078d39752b4190383ee10c15b93099
|
Provenance
The following attestation bundles were made for focal_cli-1.13.0.tar.gz:
Publisher:
publish.yml on leninmehedy/focal
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
focal_cli-1.13.0.tar.gz -
Subject digest:
f1d7bba0602e2b0201daeede18e3d5774f18b2c1f4aa3d3395b239073cec50d9 - Sigstore transparency entry: 1572653199
- Sigstore integration time:
-
Permalink:
leninmehedy/focal@05d04cb8fd040509d7e200e2e0b5b7d5c0ef0f42 -
Branch / Tag:
refs/tags/v1.13.0 - Owner: https://github.com/leninmehedy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@05d04cb8fd040509d7e200e2e0b5b7d5c0ef0f42 -
Trigger Event:
release
-
Statement type:
File details
Details for the file focal_cli-1.13.0-py3-none-any.whl.
File metadata
- Download URL: focal_cli-1.13.0-py3-none-any.whl
- Upload date:
- Size: 48.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05c4d99e57a0f8720e153d2464a5d552c07c227dd0568b977eafef0d335c4e44
|
|
| MD5 |
c1c84132dcdd557e68066dae990a8659
|
|
| BLAKE2b-256 |
49428f72eea75cba662b19f2c8164627ff070e9b1ba9b1ac0498803601924e53
|
Provenance
The following attestation bundles were made for focal_cli-1.13.0-py3-none-any.whl:
Publisher:
publish.yml on leninmehedy/focal
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
focal_cli-1.13.0-py3-none-any.whl -
Subject digest:
05c4d99e57a0f8720e153d2464a5d552c07c227dd0568b977eafef0d335c4e44 - Sigstore transparency entry: 1572653211
- Sigstore integration time:
-
Permalink:
leninmehedy/focal@05d04cb8fd040509d7e200e2e0b5b7d5c0ef0f42 -
Branch / Tag:
refs/tags/v1.13.0 - Owner: https://github.com/leninmehedy
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@05d04cb8fd040509d7e200e2e0b5b7d5c0ef0f42 -
Trigger Event:
release
-
Statement type: