codex-monthly

codex-monthly is a command for coding agents from omrikais/cctally. It costs 0 tokens per session (1,043 once invoked), scanned B, original, Apache-2.0.

A command that groups Codex usage by calendar month and can show totals, date ranges, breakdowns, and JSON output while working offline.

In plain words
What is it for?
Use it to review monthly Codex activity, filter it by dates or time zone, compare model breakdowns, or create a report to share.
Why use it?
It makes monthly usage easier to inspect without depending on a network connection or manually sorting usage records.

Command

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/omrikais/cctally/codex-monthly
Clone the repo
git clone --depth 1 https://github.com/omrikais/cctally

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for codex-monthly

README.md
[![agentmods](https://agentmods.dev/badge/commands/omrikais/cctally/codex-monthly.svg)](https://agentmods.dev/commands/omrikais/cctally/codex-monthly)
Your own site
<a href="https://agentmods.dev/commands/omrikais/cctally/codex-monthly"><img src="https://agentmods.dev/badge/commands/omrikais/cctally/codex-monthly.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,043 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.01043
Opus 5 $0.00000 $0.00522
Sonnet 5 $0.00000 $0.00209
Haiku 4.5 $0.00000 $0.00104

Measured 3d ago against content hash 05acdc873916, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade B, and why

codex-monthly scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

| `--speed {auto,standard,fast}` | Codex pricing tier. `auto` (default) reads `service_tier` from `~/.codex/config.toml`; `fast`\|`priority` there selects fast-tier pricing. `fast`/`standard` force the tier. |
docs/commands/codex-monthly.md · 86 lines

How it starts

The opening of the file, as written. The whole thing — 86 lines — stays where its author put it; the contents beside it link to each section on GitHub.

codex-monthly

Codex (OpenAI) usage grouped by calendar month. Drop-in replacement for upstream ccusage-codex monthly, offline.

Canonical form: cctally codex monthly (this flat form remains as an alias).

Config and sharing

codex-monthly retains its established calendar-month accounting semantics. --config PATH reads an alternate config without writing it, and the standard share flags (--format, --theme, --no-branding, --output, --copy, and --open) create a visibly Codex-labelled artifact. The no---format terminal, JSON, and empty bytes remain the compatibility surface. Review every artifact before sharing; details are in share.md.

Synopsis

cctally codex-monthly
    [-s YYYY-MM-DD] [-u YYYY-MM-DD]
    [-b] [-o {asc,desc}]
    [--speed {auto,standard,fast}]
    [--json]
    [-z TZ] [-l LOCALE]
    [--compact] [--color] [--noColor]
    [-O | --offline | --no-offline]
    [-d | --debug] [--debug-samples N]

Options

Flag Description
-s, --since YYYY-MM-DD Filter from date (inclusive; YYYY-MM-DD or YYYYMMDD).
-u, --until YYYY-MM-DD Filter until date (inclusive).
-b, --breakdown Show per-model cost breakdown sub-rows.
-o, --order {asc,desc} Sort direction by month (default asc).
--speed {auto,standard,fast} Codex pricing tier. auto (default) reads service_tier from ~/.codex/config.toml; fast|priority there selects fast-tier pricing. fast/standard force the tier.
--json Output JSON matching ccusage-codex monthly format.
-z, --timezone TZ IANA timezone for date bucketing.
-l, --locale LOCALE No-op; accepted for drop-in compat.
--compact Force compact table layout.
--color / --noColor No-op; accepted for drop-in compat.
-O, --offline / --no-offline No-op; always offline.
-d, --debug Emit a stderr "Codex Pricing Debug Report" (totals + top-N highest computed-cost entries).
--debug-samples N Cap on top-entry sample rows (default 5; N=0 suppresses the block).

Read the full file on GitHub · 86 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 86 lines · 0 tokens per session scan B 05acdc873916

Subscribe to this mod's changes

codex-monthly is a command published in the GitHub repository omrikais/cctally (5 stars, last pushed 5d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 1,043 tokens. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.