Inspiration
I follow a lot of builders on YouTube and LinkedIn. The useful part of what they teach never survives the watch. It stays in my head for a day, then it is gone, and my agents never learn any of it. Meanwhile every agent I use starts from zero on every task, no matter how much I have already figured out. So I stopped trying to take better notes and built the thing that should exist instead. Content goes in, a skill comes out, and the skill lives where my agents actually work.
What it does
Cherry is a personal skill library that your agents can read. Paste one link. A YouTube video, an article, a LinkedIn post. Cherry pulls the content, extracts the method inside it, and writes it back as a structured, reusable skill with prompts you can run. Sources inbox. Everything you send lands in one lane and gets processed, so the library keeps growing without a ritual around each item. The library is always available. Skills are versioned and editable, so a skill improves as you learn more rather than being frozen at the moment you saved it. Connect it to your agents. Cherry runs as an MCP server, so ChatGPT, Codex, and Claude can list and pull your skills mid task. The site itself exposes WebMCP tools, so a browser agent sitting on the page can search the library and use a skill without any setup at all. Bring your own reasoning. Connect your existing subscription or your own API key. Cherry does not resell tokens and is not trying to sit between you and your model. The result is one library that follows you across every agent surface you use.
How I built it
Next.js and TypeScript on Vercel, React and Tailwind for the interface, Privy for auth with a guest first flow so you can try it before signing in anywhere. The core is an extraction pipeline that takes a raw source, normalizes it into text, and runs a structured extraction pass that outputs a skill object rather than a summary. Summaries were the first version and they were useless to an agent. A skill needs steps, preconditions, and a prompt an agent can actually execute, so the schema is the product. On top of that sit two access layers over the same library. An MCP server for desktop and CLI agents, and WebMCP tools exposed by the site itself for browser agents. Same skills, same source of truth, two doors in. Everything is open source under MIT and designed to run at near zero cost, because a personal library you have to pay a subscription for is not a personal library.
Challenges I ran into
Getting real content in. Ingestion that works on a demo link and ingestion that works on arbitrary real world URLs are different problems. I built a compliant runner based fetch path first and left the heavier scraping adapter for after the deadline rather than shipping something fragile. Deciding what a skill is. This took the longest. Too loose and the agent ignores it. Too rigid and nothing real fits the shape. It took several rewrites of the schema before agents started using skills correctly instead of politely reading them. Two agent protocols, one library. MCP and WebMCP have different assumptions about state and identity. Keeping one library honest across both without duplicating logic drove most of the architecture. Scope. Building solo against a hard deadline, the temptation is to add surface. I cut features until the core loop of paste, skill, use was clean.
Accomplishments that I'm proud of
The core loop works end to end. One link in, a usable skill out, and that skill available inside a real agent session with no copy paste. The site is a real MCP surface, not a landing page with a demo video. A browser agent can act on it directly. It is fully open source and cheap to run, so anyone can fork it and own their own library instead of renting one. I built it solo and it feels like a product rather than a hackathon prototype.
What I learned
Agents do not need more context, they need better shaped context. The same information as prose gets skipped and as a structured skill gets executed. WebMCP changes what a website is for. Once the page exposes tools, the interface stops being the only way in, and you start designing for a human and an agent reading the same thing. Also, cutting scope is the feature. Every thing I removed made the remaining loop more obvious.
What's next for Cherry
A browser bubble that sends the current tab into Cherry in one click, so capture happens where you already are. Skill proposals from watch history, so Cherry suggests what to learn instead of waiting to be fed. A deeper ingestion adapter for sources that resist a plain fetch. A visual watcher that learns from what happens on screen in a video, not just the transcript. Scheduled runs, so skills get refreshed and re run on a cadence without you touching them.
Built With
- codex
- typescript
- vitest
- webmcp
Log in or sign up for Devpost to join the conversation.