Inspiration
This app nor the idea for it didn't exist this time last week, so when I saw the contest I started thinking about what problem I wanted to solve, and realized I have a dozen little things a day that could use a small tool to help with them.
I’m fortunate to have the technical skills to build tools that make my life easier. I think everyone should have that power, with the safeguards developers rely on, without spending hours learning the mechanics underneath.
I also use different AI agents, and I want my tools to work across them. If I build a tool to remember where I put things, I shouldn’t also have to remember which agent I built it in.
That’s why I built Ship It: the power of describing what you want, backed by GitLab’s checks and protections, with records and rules that belong to the tool instead of one conversation.
What it does
Ship It lets people describe a small tool through voice or text, review what it will do, approve it, and use it across connected assistants.
I expect people to make many different tools as needs come up. Some might be useful for a weekend; others might become something they return to every day. The demo follows two examples:
- Remember This: I tell Claude where I left my keys, then ask ChatGPT later. Both use the same saved record. I can change the tool and later restore its earlier behavior while keeping my records.
- Lunch Choices: A parent manages lunch options and invites family members. Each participant can choose up to three items for the week, but cannot change the menu or another person’s choices. Ship It enforces those permissions outside the conversation.
We experimented with other tools too. One I’ve found useful is a packing list for several upcoming business trips and vacations. I can associate items with particular trips, ask what remains to pack, and check things off as I go.
Creating tools requires a connected GitLab account with Duo access. Invited people only need a Google Account authorized to Ship It to use a finished shared tool.
How we built it
I started with the experience I wanted: someone speaking to an agent about a tool they wished existed. Then I worked backward through the things I normally do when building software - agreeing on scope, validating behavior, enforcing rules, reviewing changes and being able to undo a mistake.
Voice was an interesting interface to explore, but the underlying workflow needed to work across interfaces and environments. Outside the recorded demo, we also experimented with typed access through a Slack bot.
GitLab Duo Developer turns an agreed request into a small tool definition and examples in a draft merge request. GitLab CI checks the proposal, and Duo Code Review provides additional review. Ship It independently validates the exact definition and explains its behavior and limits.
In the assistant workflow, the owner approves that checked version before activation. Changes and undo require separate approval.
A shared TypeScript engine runs bounded memory, list, counter and weekly-choice tools. MCP connects assistants to that engine, PostgreSQL stores records, and the service runs on Google Cloud Run. A separate GitLab pipeline tests, scans, packages and releases the runtime. The project’s code and documentation are MIT-licensed.
Challenges we ran into
The biggest challenge was telling a cohesive story in three minutes.
We were demonstrating a tool that makes tools. That meant showing the creation experience, a useful result, cross-agent access, shared permissions and what happens when someone changes their mind.
Some early cuts looked like we had built a food log or a lending app. Viewers could understand the example without understanding Ship It. We had to establish the tool-maker idea first, then use different examples to show why it matters.
That process also sharpened the product: the user should be able to understand what they are making and what they are approving, even if they never inspect the GitLab work underneath.
Accomplishments that we're proud of
It actually works - and I’ve started using it.
What began as a small experiment for the competition has become useful in my day-to-day life, including planning what to pack for upcoming trips. That mattered more to me than adding another demonstration feature.
We also completed real GitLab Duo builds, approved changes and undo with saved records preserved, and shared tools with enforced permissions. Claude and ChatGPT used the same tools and records across existing conversations.
What we learned
This was one of my first opportunities to work deeply with some of GitLab’s more advanced capabilities and the Duo Agent Platform.
I learned how much of the development workflow can sit behind a simple conversation, while still leaving inspectable evidence of what was proposed, checked and approved.
I also learned the value of keeping tools small. A focused tool with clear rules can solve a real problem without becoming another large application someone has to manage.
What's next for Ship It
Ship It is open, and I hope people use it—both to make their own tools and to adapt these techniques for things they want to build.
There is a lot of potential in bringing the ability to make useful tools to people who have never thought of themselves as software developers. I want people to have that power, with understandable safeguards and the freedom to choose the agents they use.
Built With
- better-auth
- claude-code
- codex
- docker
- gitlab
- gitlab-ci-cd
- gitlab-duo-agent-platform
- gitlab-secret-detection
- google-artifact-registry
- google-cloud
- google-cloud-build
- google-cloud-run
- google-cloud-sql
- google-secret-manager
- jose
- mcp
- node.js
- oauth2
- openai
- openid-connect
- postgresql
- semgrep
- typescript
- workload-identity-federation
- zod
Log in or sign up for Devpost to join the conversation.