Hacker News
Show HN: Pots – Open-source Grok Bot alternative, used by 6 startups for a month
To be honest, the first time I used Grok Bot, its design really impressed me. Unlike OpenClaw before it, it was not just Claude Code connected to a chat app. It truly cared about how it works with people. It felt like a living AI assistant, and working with it was painless. That is the idea I kept learning from the whole time I built Pots: it is not an agent hooked up to a chat channel. It should be a coworker that feels alive and is comfortable to work with.
But Grok Bot is only Grok's bot. Which model you get depends on your X subscription, your data and your machine are all in the cloud, and most of all, it is a standalone app, and most of its features serve that app.
Pots is a bit different. In Sydney I have talked with quite a few founders. Grok Bot is good, and it helps them a lot with their personal tasks. But when I asked who had actually put Grok Bot into their company's work to make their startup team faster, nobody had. So I think Pots is in a different place from Grok Bot, and from most open-source Grok Bot alternatives: it grew out of what real startup teams need. Before I open-sourced it, 6 small startups I met at startup events had been using it with me for over a month.
Pots is built first for the channels startup teams already work in, not for an app of its own, so most of what it does serves the places where you actually work. The teams use Pots as a middle layer: a CEO talks ideas through with the team in chat, Pots listens, and then it builds a prototype that both sides can check. They use Pots for competitor research: because Pots runs inside their channels, it knows their product well. Not only the GitHub repo, but the team's daily discussions and what the team cares about. Pots has been listening quietly the whole time, so it knows the product with no setup at all. It also works well with each channel: it talks to people with the channel's own controls, like Slack and Discord buttons and cards, and when it hands over something complex, it deploys a page with its built-in server so everyone sees it in a better form.
So Pots is different from Grok Bot and from most open-source alternatives. It came out of what real startup teams need. Its channel features start from what each company's work needs, and it can join your real work setup with no setup and still do well, instead of being one more app that nobody uses and that is hard to start with. And it ran in real business for a while before I cleaned it up and open-sourced it.
The difference from Grok Bot is also exactly why I made Pots an open-source Grok Bot alternative. I have OpenAI and Claude subscriptions with plenty of quota, and my own servers, so I don't want an X subscription to limit me. I want to use whatever model I want and do whatever I want. I can even switch to an open model, and none of my data goes into anyone's pocket.
Try it (Node 24+, macOS, Linux or Windows): the easiest way is to ask your coding agent (Claude Code, Codex, Cursor) to read docs/for-agents.md in the repo and set up Pots for you. Or by hand: npm install -g pi-durable-bot, then pots init.
I'd love feedback, especially on how it decides when to act.
avaer
|next
[-]
Crokily
|root
|parent
[-]
Compare a Claude Code connected to a gateway with Grok Bot. One is a coding agent, the other is a personal agent. When you give Claude Code an instruction, it goes and does it itself: it thinks for a while, works for a while, then gives you a big pile of text. If you say a few more things while it works, your words go into a queue. Whether they cut in or wait, in the end it's the same single agent doing the work, because it's a dev tool, not an assistant.
Grok Bot, as a personal agent, is different. The agent you talk to rarely does the work itself. It's like your assistant: most of the time it only needs to do two things well, talk with you and delegate for you. So when you talk to Grok Bot you don't wait long, you usually get an answer quickly, because the main agent is a lightweight agent tuned only for the conversation. It hands the task to a full-power subagent, keeps an eye on the work and reports back to you. So even when you have several things going and keep sending messages one after another, your messages don't cut in or wait like in a single-threaded queue. Your assistant decides for you whether this message, this task, goes to a new subagent or gets added to the one that's already on it. And you rarely see a Claude Code-sized reply in Grok Bot. Your secretary sorts things out for you. If it's a lot of information, or it needs a special kind of interaction, your secretary uses a page (a special web output), or in-app pop-ups, choice boxes, input boxes and so on. Not only text, and never a wall of text that's hard to read.
I was a long-time user and developer of OpenClaw-like apps before, so I saw right away that this is the biggest difference between a personal agent like Grok Bot and a coding agent connected to a chat app. These are the points I found most worth learning from Grok Bot, and they are the core idea I kept pushing and optimizing for the whole time I built Pots: a personal agent that works like a real coworker / secretary.
All of this is already in Pots, especially the special interactions. Pots didn't build its own app first (that's also why I say Pots cares about what real startup teams need, more on that below). It lets the agent treat each chat app as its own tool and get good at the controls each chat app already has, so inside each chat app Pots gets the same kind of special interactions as the pop-ups and choices built into the Grok Bot app. And since Pots is a local, self-hosted service, I also researched and designed how it can give people a page they can open from outside, the way Grok does: the agent uses Cloudflare and Tailscale services, so its pages can be reached from outside freely and safely.
Now the "what real startup teams need" part. Grok Bot is a separate product, a separate app. If a team wants to use it, everyone can only use it as an outside product and throw their own tasks and their own context at Grok Bot, and the company can't manage it in one place either. Pots is built on top of each team's chat tools. You don't need a separate app, you just bring Pots into your own channels: Slack, Discord, Telegram, Teams and so on. Pots gets all the context you want it to know directly, with no outside tool and nobody passing things along. If Grok Bot is a personal assistant that each person can only use on their own, from outside, then Pots is an in-house team assistant. It's simply a coworker on your team, so internal work takes fewer steps. And because it's built on the team's chat tools in the first place, you get 100% of the features right in your own channels, without a separate app.