{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-06T11:38:23.483Z","url":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli","markdownUrl":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli.md","server":{"slug":"psychofict-codexwatch","name":"codexwatch","registryName":"io.github.psychofict/codexwatch","description":"OpenAI Codex usage from your local logs: tokens, API-equivalent cost and plan limits.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"codexwatch-cli","type":"pypi","identifier":"codexwatch-cli","withdrawn":false,"url":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli","version":"1.0.2","transport":"stdio","scoredAt":"2026-11-06T07:20:53.018Z"},"score":{"total":79,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-06","total":79},{"date":"2026-11-05","total":79},{"date":"2026-11-04","total":78}]},"categories":[{"name":"Supply Chain Security","score":100,"verdict":"pass","reasons":["No malware found by supply-chain analysis.","No known CVEs affecting this package version or its production dependencies.","Runs setuptools.build_meta at install time, a recognised build step with no custom scripting around it.","No production dependencies, so there is no dependency health to assess."],"codes":[{"code":"supplychain.malware_clean","args":{}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"setuptools.build_meta","hooks":"build_backend"}},{"code":"dephealth.no_dependencies","args":{"deps":"0","unhealthy":"0"}}]},{"name":"Provenance & Transparency","score":100,"verdict":"pass","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to psychofict/codexwatch).","Clear OSI-approved license (MIT).","Actively maintained (last published 1 days ago).","Publishes a security disclosure policy (SECURITY.md)."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"psychofict/codexwatch"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"1"}},{"code":"disclosure.present","args":{}}]},{"name":"Schema Quality & AI Usability","score":64,"verdict":"fail","reasons":["AI-judged instruction clarity (good).","Tool/resource definitions use about 367 tokens (~61/item across 6 items; 6 tools + 0 resources), lean.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"good"}},{"code":"schema.footprint_lean","args":{"avg":"61","items":"6","tools":"6","tokens":"367","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":7,"verdict":"partial","reasons":["Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"2"}}]},{"name":"Tool Coverage","score":83,"verdict":"partial","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","50% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"50"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 7 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"6"}},{"code":"toolsafety.manipulation_clean","args":{"units":"7","judged":"7"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"codexwatch-cli","type":"pypi","identifier":"codexwatch-cli","withdrawn":false,"score":79,"current":true,"url":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli","markdownUrl":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"codexwatch-cli"},{"label":"Version","value":"1.0.2"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"usage_summary","title":null,"description":"Codex token usage and its API-equivalent dollar value for a period: totals, cache hit rate, and the top models and projects. Dollar figures are estimates at OpenAI API prices; tokens of models with no published price are counted separately.","inputs":[{"name":"period","type":"string","required":false,"description":"today, the last 7 or 30 days, this calendar month, or all history"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":82},{"name":"plan_limits","title":null,"description":"Where the ChatGPT plan's Codex limits stand now: each window's percent used, reset time, burn rate per hour and projected time it fills, read from the newest session log. With codexhop installed, also every saved account's last reading and the account with the most 5-hour room.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":70},{"name":"quota_forensics","title":null,"description":"What each percentage point of the plan cost in API-equivalent dollars and tokens, per window and per day, plus rises in a window that the local logs cannot explain (usage from another machine, ChatGPT itself or cloud tasks, or a metering change).","inputs":[{"name":"window","type":"string","required":false,"description":"only windows of this length; both when omitted"}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":77},{"name":"sessions","title":null,"description":"The most recent Codex sessions with title, project, models, turns, tokens and dollar value.","inputs":[{"name":"limit","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":34},{"name":"daily","title":null,"description":"Tokens and API-equivalent dollars per local day, oldest first, with empty days included.","inputs":[{"name":"days","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":32},{"name":"budget_status","title":null,"description":"The user's codexwatch budgets (dollar, token or plan-window caps) with how much of each is used and whether it is near or over its limit.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":41}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-06T07:20:53.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":0,"partial":false,"deprecated":null,"stale":null,"noRepo":null}},"mismatches":[],"changelog":{"trackingSince":"2026-11-04","recent":[{"id":"chg_01a1a9de-2ce2-7e66-9f54-79ff407cd350","kind":"package.version_changed","summary":"Package version (1.0.1 → 1.0.2)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli#chg-chg_01a1a9de-2ce2-7e66-9f54-79ff407cd350"},{"id":"chg_01a1a9de-2ce3-7c65-b721-372986fbb468","kind":"score.total_changed","summary":"Trust score (78 → 79)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli#chg-chg_01a1a9de-2ce3-7c65-b721-372986fbb468"},{"id":"chg_01a1a6a9-9839-76e6-bf75-212ef75866bd","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli#chg-chg_01a1a6a9-9839-76e6-bf75-212ef75866bd"},{"id":"chg_01a1a6a7-a1c8-75aa-be3d-d24c991a58ee","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli#chg-chg_01a1a6a7-a1c8-75aa-be3d-d24c991a58ee"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli/changelog.json"},"links":{"html":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli","markdown":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli.md","changelogJson":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli/changelog.json","changelogRss":"https://verifymcp.io/servers/psychofict-codexwatch/codexwatch-cli.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/codexwatch-cli/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/codexwatch-cli"},{"label":"Repository","href":"https://github.com/psychofict/codexwatch"}]}}