Coding agent memory in Git

Store coding agent memories as Markdown files inside your repository. Use lightweight MCP tools to search and manage memories.

Get started
acme-appmonorepo
  • .memories
  • generate-types-from-the-spec
  • split-request-response-schemas
  • apps
  • webpackage
  • .memories
  • errors
  • hydration-mismatch
  • apipackage
  • .memories
  • read-and-write-models
memory.md
---id: 8ef26da2-2158-49a3-9c6f-52914ca3c651created: 2026-09-17title: Generate types from the specdescription: Orval replaced hand-written API types; HTTP client generation remains deferred. Read when changing OpenAPI schemas, investigating generated type mismatches, or choosing an API client generator.scope:  - apps/web  - apps/apidoNotDelete: true--- The frontend contained hand-written types that had not been updated in a while, and some new features relied on them instead of the types generated from the API's OpenAPI schema. TypeScript types are now generated with Orval, and the generated models replace the hand-written API interfaces, which are deprecated. Generating the HTTP getters and actions with the same tool is deferred, and will be tested first in new features under development to find edge cases before wider adoption. A single generated definition reduces duplication and inconsistency, and Orval supports `anyOf` and `oneOf`, which the previous generator did not. Two alternatives were rejected. `@openapitools/openapi-generator` offers fewer customization options and has trouble with `anyOf` and `oneOf`, and `@openapi-codegen` does not generate SWR hooks. Because every change to the specification is reflected in the generated SDK, the API's OpenAPI specification must be kept up to date.
Showing .memories/generate-types-from-the-spec/memory.md

Useful memories

  • industry intel
  • glossary
  • gotchas
  • known edge cases
  • past incidents
  • business model
  • failed approaches
  • customer context
  • recurring errors
  • blockers
  • architectural decisions
  • unresolved questions
  • rejected alternatives
  • product context
  • team members & ownership
  • compatibility constraints
  • rejected designs

Works with your stack

  • Claude Code
  • Codex
  • Cursor
  • Gemini CLI
  • OpenCode
  • Antigravity
  • GitHub Copilot
  • TypeScript
  • Python
  • Go
  • Rust
  • JavaScript
  • Java
  • Ruby
  • PHP
  • Swift

What’s in Tiramisu?

Why store curated memories in Git?

Branch synchronization

If code is reverted or branched, its memories revert or branch with it automatically.

Reviewable

Memories are Markdown files inside your repo, reviewed in PRs alongside code.

Portable by Default

If you stop using Tiramisu, you can keep your data.

Use fewer tokens for memory

Tiramisu stores short, curated memories instead of full conversation transcripts and retrieves only what’s relevant to the current task.

Build anything, remember what matters

Get started