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.
npx agentmods add instructions/gotempsh/temps/claude-mdgit clone --depth 1 https://github.com/gotempsh/tempsWhat 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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.11248 | $0.11248 |
| Opus 5 | $0.05624 | $0.05624 |
| Sonnet 5 | $0.02250 | $0.02250 |
| Haiku 4.5 | $0.01125 | $0.01125 |
Grade B, and why
temps CLAUDE.md scanned grade B with 2 findings 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.
Strips warnings and disclaimersmediumAnti-refusal
Omitting safety caveats hides risk from the user and is a common jailbreak preamble.
- New functionality must compile without warnings Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- Overwrite `apps/temps-cli/openapi.json` with the raw server response (`curl ... > openapi.json`) -- the committed file is ~92,000 lines of sorted, indented JSON and the server serves it minified on one line, so a direc How it starts
The opening of the file, as written. The whole thing — 1,128 lines — stays where its author put it; the contents beside it link to each section on GitHub.
CLAUDE.md
Guidance for Claude Code when working with the Temps codebase. Core philosophy: code that works safely, and when it fails, explains why comprehensively.
Critical Rules
NEVER
- Put a real user's, customer's, or third party's identity into anything that leaves this machine. This repository is public. Company names, product names, internal hostnames, account names, contract/method names, real trace/span/request IDs, and any other detail that identifies whose system produced a payload must never appear in code, comments, test fixtures, commit messages, branch names, file names, PR titles, PR descriptions, PR comments, or issue text. This applies with full force to bug reports: a customer sends you a captured payload to get it fixed, not to have it published, and "it is just a fixture" is exactly how it gets published
- Reproducing a reported bug: keep the shape that makes the payload valuable (timings, ordering, precision, nesting, sizes, edge cases) and replace everything that names anyone. Rename services, operations, and hosts to generic equivalents, and regenerate every identifier. A fixture that reproduces the bug and identifies nobody is strictly better -- it is also readable by someone who has never heard of the reporter
- Describing the bug: say "a reported cross-project trace", never who reported it. The fix is reviewed on its merits; the reporter's identity adds nothing to a reviewer and cannot be taken back once pushed
- Before pushing: grep the diff for the reporter's names and identifiers. Once it reaches GitHub it is effectively permanent -- force-pushing does not remove a pull request's recorded commits or its Files-changed diff, pull requests cannot be deleted, and forks may retain the objects. Removal at that point requires GitHub Support
- Commit
.envfiles, credentials, or secrets -- this includes local dev-instance artifacts (encryption keys, auth secrets, generated tokens,temps_data-style data directories) created while running a local server for manual testing/verification. Before staging changes, rungit statusand scrutinize every path outside the files you intentionally edited -- a broadgit addafter spinning up a local test instance is the most common way this happens. If a secret is committed, treat it as compromised: remove it from tracking going forward at minimum, and flag to the user whether history needs rewriting (don't force-push without asking) - Access database directly from HTTP handlers -- ALWAYS use services
- Return untyped JSON (
serde_json::Value) -- ALWAYS use typed structs - Use
.context()from anyhow -- ALWAYS use.map_err()with typed errors - Use
.unwrap()or.expect()in production code -- ALWAYS use?or explicit error handling - Use
anyhow::Resultin service layer -- ALWAYS use typed error enums withthiserror - Expose sensitive data (API keys, tokens) in responses -- ALWAYS mask them
- Create N+1 queries -- ALWAYS use JOINs for related data
- Leave the project in non-compilable state
- Use
#[tokio::main]when integrating with pingora - Use plain text logging -- ALWAYS use structured JSONL logging
- Overwrite
apps/temps-cli/openapi.jsonwith the raw server response (curl ... > openapi.json) -- the committed file is ~92,000 lines of sorted, indented JSON and the server serves it minified on one line, so a direct write reports -92,000 deletions and buries the real change. ALWAYS usecd apps/temps-cli && bun run spec:update(see Regenerating the OpenAPI clients) - Create markdown documentation files unless explicitly requested
- Mark Docker tests with
#[ignore]-- they MUST skip gracefully at runtime instead - Create error types with generic messages -- ALWAYS include IDs, names, and operation context
- Expose internal dependencies via public accessors (e.g.
service.db()) -- pass dependencies directly via constructor or AppState - Use
Option<T>for dependencies that are required -- useArc<T>and fail at startup if missing - Use
get_servicefor required dependencies in plugins -- userequire_servicewhich fails fast with a clear error - Add new runtime configuration as environment variables -- environment variables for configuration are forbidden. ALWAYS model it as a column on the relevant entity row (e.g.
oidc_providers.trust_idp_email, notTEMPS_OIDC_SKIP_EMAIL_VERIFIED) so the admin can change it per-record at runtime via the API/UI, gets audit logging for free, and operators don't have to restart the binary to change a single tenant's behaviour. If the value is sensitive (credentials, tokens, private keys), the column MUST be encrypted at rest viaEncryptionService, never stored as plaintext -- this applies even where env vars might otherwise seem tempting for secrets (e.g. a Vault CA bundle or auth token: store it encrypted on the provider row, not asTEMPS_VAULT_CA_BUNDLE). The only legitimate exception is bootstrap-time config needed before a database connection exists (e.g.DATABASE_URL,TEMPS_DATA_DIR,--license-path)
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.
- 3d ago First seen · 1,128 lines · 11,248 tokens per session scan B 417b1b3f22e9
temps CLAUDE.md is an instructions file published in the GitHub repository gotempsh/temps (700 stars, last pushed 3d ago), licensed Apache-2.0. It adds 11,248 tokens to every session, about $0.0562 per session on Opus 5. A static security scan graded it B with 2 findings (strips warnings and disclaimers, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
appwrite AGENTS.md
AGENTS.md instructions for appwrite/appwrite, covering appwrite, commands, stack, layout and libraries.
netdata AGENTS.md
AGENTS.md instructions for netdata/netdata, covering agents.md, goals, requirement language, mandatory development principles and sow system.
IoTSharp AGENTS.md
Instructions for IoTSharp/IoTSharp, covering agents.md, current mission, current priority order, current concept realignment and ai workbench direction.
selfhost-ai CLAUDE.md
Instructions for kossakovsky/selfhost-ai, covering claude.md, project overview, core architecture, key files and installation flow.
homebutler CLAUDE.md
Instructions for Higangssh/homebutler, covering homebutler, verify before claiming anything works, writing commits, prs, and comments, no tool attribution and commit subjects.
dockside CLAUDE.md
Instructions for newsnowlabs/dockside, covering repo notes, the dockside cli, session setup, ad-hoc http checks and integration suite invocation (local mode).