Crafter Station · WhatsApp
A bot that earns its place in the group chat. It searches when being wrong would matter, remembers what you tell it to, makes the sticker, keeps the list — and posts a digest of everything you missed.
running at wspbot.crafter.run
What it does
Each of these is a switch on the dashboard. Turning one off takes its tools away from the model and the instructions with them, so the bot says the thing is off rather than offering to do it.
In groups only, when @-mentioned or when you reply to one of its messages. Direct chats are ignored, and so is everything else.
Ask how it works, what it runs on, or who built it, and it answers from fact.
Watches its own WhatsApp session and brings it back when it drops, so a restart underneath it goes unnoticed.
Reply to any message and tag it, and it reads what you replied to — the text, and the picture if there is one. “What does this mean?” works.
Weighs up whether each message deserves a reaction, and picks one that fits, rather than defaulting to a thumbs-up.
For anything current or specific enough that being wrong would matter — not for things it already knows.
“Remind me at 9”, or “every morning, check if it will rain and tell me”. One per person per chat; change or cancel it any time.
Each chat has its own pending list. Add items, tick them off, take them back off the list — in whatever words you use for it.
“Record that…” keeps a fact for the chat; some facts can be saved for every chat. Both survive restarts, and “forget that” removes them.
Images, video, PDFs and other documents, found by searching or from a link you give it.
Generates a voice note when something is easier to hear than to read, or when you ask it to read something out.
Puts a WhatsApp poll in the chat, two to twelve options, single or multiple choice.
Every sticker sent in any chat it is in is kept, silently and without replying. One shared library, described automatically so it can be found later.
Picks one out of the shared library when a sticker answers better than words do.
Tag it with an image, GIF or short video, or give it a GIF link. Animation is preserved.
Ask for a sticker of something that does not exist and it draws one, on a transparent background.
Tell it what one should be called and it can be asked for by that name afterwards.
Share a Google Sheets link and ask what is missing, or have it fill something in. Reading a public sheet needs no setup.
Ask it to connect and it sends a link. You choose which pages it may reach; after that it can search, read, write, work with databases and leave comments.
Reads one group and posts a digest into another on a cron — decisions, open questions, links and pictures. The source group is recorded in full while this is on, including messages that do not tag the bot; nothing else is, and it is kept for a fortnight.
Somebody asks who supports this bot and it reads out the list — names and how they helped, never amounts. The list is kept on the dashboard.
Anything it can lay out in HTML — a table, a card, a summary with real formatting — it can render and send as a picture, since WhatsApp shows none of that as text. Rendered with no network access at all, so nothing the page references can be fetched.
Looks up repositories and issues, and — where it has been given permission — opens issues, comments on them, creates repositories and publishes them as websites with GitHub Pages, as the bot's own GitHub account. Reading is open; every write needs its own switch, only lands on repositories named on the dashboard, and is recorded with who asked for it. It can also be limited to particular groups.
In groups set up for it, and only there, it can remove somebody — on an admin's request, or on its own if that has been allowed, when someone is being abusive towards it. It never removes admins or the owner, it warns before it removes, there is a small daily ceiling, and every warning and removal is recorded with its reason. It can only act on whoever wrote the message it is answering: naming somebody in text does nothing.
In groups set up for it, it reads along and occasionally says something without being tagged — the way somebody in the room would. Enabling a group records it, the same as a summary schedule does. How often, how much has to have been said first, quiet hours and a daily cap are all set per group.
Give it a link and it opens the page in a real browser and sends back a screenshot — the top of it, or the whole thing. It never opens an address inside the private network, and it carries none of the bot's own logins.
Knows where one project stands in a public vote count and what it would take to move up a place — the exact gap, not an estimate. Anyone in the chat can ask; a group can also be set up on the dashboard to be told when the standing changes.
Anyone can ask what is being built; supporters can back items and suggest new ones. A vote is weighted by how much somebody has chipped in, capped so nobody can own the list, and a suggestion waits for approval before it becomes votable. Voting ranks things — it never switches a feature on.
Tokens and estimated spend for today, the last week and all time.
How it works
It sits there quietly. No tag, no reply — a bot that answers everything is a bot people mute.
Ask in plain language, in your language. Reply to a message and tag it, and it reads what you pointed at — the picture included.
Searching, remembering, drawing a sticker, setting a reminder, writing the digest. You configure what it may do from the dashboard.
What's next
Anyone who has chipped in can back what gets built next, weighted by how much — and capped, so nobody owns the list. Vote by asking the bot.
Shipped: Renderizar webs y enviarlas como imagen
Open source
Run your own, take a piece, or send a change. A star is the only thing either project asks for.

Every answer is an OpenAI call and the whole thing sits on a VPS somebody pays for. If you would like to chip in towards the credits: the code is Jibaru's personal Yape, and there is a coffee link for everywhere Yape does not reach. Entirely optional, and code is just as welcome as money.
Buy me a coffee