A custom /daily command for opencode that generates a daily standup message from your git activity.
When you run /daily in the opencode TUI, it:
- Identifies the current project from the git repo root.
- Collects today's commits across all branches authored by the current git user (
git config user.name). - Reads full commit bodies for context (not just subject lines).
- Captures current uncommitted changes (
git diff HEAD+git status --porcelain). - Generates a brief, non-technical daily standup message mirroring the format of the previous day's message (same language, same section headers, same tone).
- Saves the message to
~/Workspace/daily-log/<project>/YYYY-MM-DD.mdfor history and automatic retrieval next time.
- opencode installed
gitavailable in PATHgit config user.nameset in the repo (used to filter your commits)ghCLI (for installation viagh repo clone)
Clone directly into your opencode commands directory:
gh repo clone opencode-daily ~/.opencode/commandsOr with git:
git clone https://github.com/adrian-martinez-dev/opencode-daily.git ~/.opencode/commandsPass your previous daily message as the argument to establish the format:
/daily "Evolución del día / Qué se ha completado
- Item one
- Item two
Qué se va a trabajar al día siguiente
- Next item"
The command will mirror that format (language, section headers, structure) for today's message and save it to ~/Workspace/daily-log/<project>/YYYY-MM-DD.md.
Just run /daily with no arguments. The command reads the most recent saved message from the project's log folder, mirrors its format, and generates today's:
/daily
Append any instructions after the quoted message to guide the output:
/daily "previous message..." emphasize the API refactor and skip mentions of CI
The command will ask you to provide a previous message to seed the format:
No previous message found. Please run
/daily "<previous message>"to seed the format.
- If
$ARGUMENTSis non-empty: the text inside the first pair of double quotes is the "previous message". Anything after the closing quote is extra context. - If
$ARGUMENTSis empty: the most recent*.mdfile in~/Workspace/daily-log/<project>/is read as the previous message. - If neither exists: the command stops and asks the user to seed the format.
Messages are stored per-project at ~/Workspace/daily-log/<project-name>/YYYY-MM-DD.md.
The project name is derived from the basename of the git repo root (git rev-parse --show-toplevel).
- Log path: edit
daily.mdand change~/Workspace/daily-log/to your preferred location. - Author filter: the command uses
git config user.nameautomatically. Make sure it's set in your repo.