Inspiration
Git preserves the final code change, but it usually loses the reasoning that produced it: the prompts, agent response, decisions, experiments, and agent sessions behind a commit. Mallard was inspired by the idea that this context should travel with a project across teammates and machines—without copying an entire agent profile or credential store.
What it does
Mallard lets developers select and sync project-specific Codex sessions and agent resources, including project setup, skills, plugins, and approved configuration. It stores versioned bundles in a local folder or user-owned S3/R2 storage, then verifies and presents a reviewed restore plan before anything is applied on another machine. For Git projects, it also connects agent sessions to the commit timeline, helping teammates recover the reasoning behind a diff. For non-Git work, it supports the same workflow through project snapshots.
How we built it
We built Mallard as a Tauri 2 desktop application: React, TypeScript, and Vite power the review-focused desktop UI. Rust handles discovery, validation, hashing, local persistence, safe filesystem operations, and S3/R2 storage. Immutable, SHA-256-verified bundle generations make transfers inspectable and tamper-evident. Codex JSONL archives are parsed locally to recover session metadata, conversation previews, activity windows, branch information, git branch to chat session mapping, and recorded commit references.
Challenges we ran into
The hardest technical problem was portability. Codex stores absolute paths in local session archives, but those paths differ across devices and users. We needed to normalize machine-specific paths into portable project-relative identities while keeping the local checkout mapping private to each machine.
We also had to decide what should travel with a project. Rather than syncing an entire Codex home directory, Mallard inventories individual artifacts and lets users choose conversations, setup, skills, plugins, and configuration. The app compares local and remote states—such as local-only, storage-only, newer, synchronized, or diverged—so users can make an informed Push or Pull decision.
Finally, presenting Git history beside chat history required a careful mapping model. Mallard parses JSONL session archives for timestamps, branches, and commit metadata, then maps sessions onto a selected branch’s first-parent commit history. It links sessions to commits that occurred during the session window, or to the nearest follow-up commit within 24 hours, while clearly leaving ambiguous sessions unmapped instead of pretending the relationship is certain.
Accomplishments that we're proud of
Turned agent sessions into project-scoped, transferable knowledge. Built a session-to-commit timeline that makes the reasoning behind code changes visible. Created a granular artifact-selection and diff-review workflow. Made restoration explicit, verified, and backed up before changes are applied. Supported both simple local-folder transfer and user-owned S3/R2 storage.
What we learned
We learned that agent context is valuable only when it is portable, understandable, and safe. Moving files is not enough: a useful system must separate shared project knowledge from machine-local paths, credentials, and personal configuration. We also learned that Git and agent history complement each other. Git tells us what changed; session history preserves why it changed—the prompts, investigations, tradeoffs, and decisions behind the diff. GPT‑5.6 became part of our engineering workflow through a plan-and-code loop. We used planning to turn broad product ideas into scoped designs, edge cases, implementation steps, and verification criteria; then used coding sessions to inspect the codebase, implement focused changes, run checks, and iterate from test results. This made it easier to handle a large, interdependent desktop application without losing track of safety requirements.
What's next for Mallard
Next, we plan to refine the Codex-first workflow, improve onboarding and timeline exploration, add support for more agent providers such as Claude, expand platform availability (windows, linux), and introduce an optional managed Mallard Cloud experience while keeping local folders and user-owned storage first-class.
Built With
- cloudflare
- codex
- macos
- npm
- r2
- react
- rusqlite
- rust
- s3
- sqlite
- tauri
- tokio
- typescript
- vite
Log in or sign up for Devpost to join the conversation.