Day 6: The Personality Layer
26 commits. 5,000 lines. What makes an AI agent feel like yours?
← Day 5: The Enterprise Gauntlet
Sunday morning, coffee, a realization
Yesterday was all enterprise: audit trails, compliance docs, security hardening. Important stuff. Necessary stuff.
But today I caught myself thinking about something different. Something softer.
When you create an agent in Pinchy, what happens? You pick a template, give it a name, maybe adjust some settings. And then... it's just a chatbot. It works, technically. But it doesn't feel like anything.
That's a problem.
Greetings matter more than you think
The first thing I built today: agent greetings. A simple concept — when you open a chat with an agent, it greets you. Not the generic "How can I help you?" that every AI spits out. A greeting that the agent's creator defined. Something that sets the tone.
Smithers (Pinchy's default agent) now opens with: "Good day. How may I be of assistance?" — because that's who Smithers is. A knowledge base agent might say: "Ask me anything about your documents." A DevOps agent could open with: "What's broken?"
Behind the scenes: a new greetingMessage column in the agents schema, a PATCH endpoint to update it, and the greeting gets injected as the first message when you open a fresh thread. No fake AI response, no server-side chat sync tricks. Just a static message that sets expectations.
I also ripped out the old chatSync greeting mechanism. It was a server roundtrip just to show a welcome message. Over-engineered for what it did.
Shared vs. Personal: the badge that changes everything
Pinchy has two types of agents: shared (visible to everyone on the team) and personal (only for their creator). Yesterday we built the infrastructure. Today we made it visible.
A small badge in the chat header: "Shared" or "Private". A tooltip explaining what it means. The agent settings page now shows the type too. Tiny UI change, massive clarity for users.
Why does this matter? Because in a team environment, people need to know: is this agent seeing my conversations? Can my colleague read what I asked? The badge answers that question before anyone has to ask it.
Memory privacy: the notice nobody reads (but everyone needs)
Every agent in Pinchy uses OpenClaw's memory system. Conversations persist. The agent remembers context. That's the whole point.
But what about personal agents? If I create a personal agent and chat with it, where does that memory go? Can an admin see it? Can another user access it?
Today I added a memory privacy notice to the thread welcome screen. It's right there when you start a new conversation: this agent's memory is private to you, or this agent's memory is shared with the team. No legalese. No buried settings page. Just a clear statement at the moment it matters.
This is the kind of thing that nobody notices when it's there, but everyone notices when it's missing.
Supply chain security: SBOM pipeline
On the less glamorous side: I added an SBOM (Software Bill of Materials) CI pipeline today. Every build now generates a complete list of every dependency, every version, every license.
Why? Because enterprise customers ask for it. SOC 2 auditors ask for it. And honestly, everyone should ask for it. When you're self-hosting an application that has access to your AI agents, you want to know exactly what code is running.
The docs site now has an SBOM page explaining what it is, how to access it, and what format it's in. Plus a hardening guide for production deployments — because "docker compose up" is a fine start, but it's not how you run things in production.
The pattern I'm noticing
Six days in, a pattern is emerging. The cycle goes: build features → realize they need governance → add governance → realize governance needs UX → add UX → repeat.
Day 1-3 was features. Day 4-5 was governance. Day 6 is the personality layer — the UX that makes governance invisible and features feel personal.
It's not a linear progression. It's a spiral. And each loop through makes the product feel more complete.
By the numbers
- 250 commits total (26 today)
- ~42,000 lines of code
- 65 files changed today
- 5,101 lines added, 384 removed
- ~35 test files and growing
Tomorrow
Week 2 starts. The foundation is solid: auth, agents, chat, audit trail, compliance docs, agent personalities. Time to start thinking about the feature that started this whole journey — the knowledge base. The one that made someone in a gym go quiet and say "that's exactly what we need."
Day 7: Agents Are People Too →
Follow the build → GitHub · heypinchy.com