The Challenge
Agency relationships are nuanced. You need to remember that a client's daughter just started college, that they hate being called before 10am, that the last project ran over budget because of scope creep on their end.
CRMs track deals and pipelines. They don't track the human context that makes or breaks creative partnerships. So most agency owners keep it all in their heads — until they forget something that matters.
The Approach
Relationships aren't deals. They're living things that need attention. The gardening metaphor isn't decoration — it's the core mental model. Contacts have momentum that decays with silence and grows with any interaction — no quality ratings, no channel tracking. All water is equal.
An embedded AI agent can do what humans forget to: prepare you before every interaction by surfacing relevant context, past conversations, and relationship history. A reflect mode lets you have multi-turn conversations about your patterns and blind spots — and those reflections persist, feeding into future sessions so the AI notices what you can't.
The Solution
Two surfaces, one philosophy. A native macOS app (SwiftUI + SwiftData) for visual dashboard workflows. A Rust terminal CLI (ratatui + SQLite) for keyboard-driven speed — plant, water, brief, analyze, and reflect without leaving the terminal.
The CLI's TUI shows your garden at a glance: momentum bars, decay indicators, and one-key access to AI modes. Reflect sessions auto-save to SQLite, and past reflection excerpts feed into future context so the AI compounds its understanding over time.
An MCP server bridges both worlds, exposing your relationship data to Claude Code: "who do I know at Nike?" or "brief me on Sarah before our call."
The Outcome
Professional relationships get the same intentional care as creative work. No more walking into calls cold. No more forgetting that a client mentioned something important three months ago.
The gardening metaphor turns relationship maintenance from a chore into a practice — something you check on daily, not something you panic about quarterly. And because reflections persist, patterns that would otherwise stay invisible surface over weeks and months.
What I Learned
Two surfaces > one app. The same relationship data is useful in a native GUI (visual dashboard, drag interactions) and in the terminal (quick queries while deep in code). Building both from separate data layers was more work, but each surface earns its existence.
AI briefings change behavior. When you know the AI will surface context before every call, you start capturing more context after every call. The tool creates its own virtuous cycle.
Persistent reflections compound. The first reflect session is useful. The fifth one — when the AI can reference patterns from previous sessions — is transformative. Memory across sessions is the unlock.