Everything VibeCord can do today, and everything it is meant to do next — the same board the work is actually run from, minus the parts that only make sense to whoever is writing the code.
Planned means intended, not promised. There is no company behind this and no deadline: things move when they are ready, and occasionally something gets dropped because it turned out to be a bad idea. When that happens it comes off this page.
92 things on the board · 74 shipped · 0 being built · 18 ahead
The part that never touches the server
If a person’s tile lights up while they talk but you hear nothing, the tile names the reason — you muted them, the speaker you picked refused, or playback never started — and offers a button to start it. Muting one person for yourself also leaves a visible mark on their tile.
A picker split into Screens and Windows, and a switcher bar that appears as soon as more than one person is sharing.
The tile layout re-solves itself for the window shape and the number of people, so everyone always fits on screen at the largest size that works.
Each outgoing stream gets a share of your upload rather than all of it, so a six-person call stops turning into a slideshow.
A call keeps the conversation beside it: the chat panel in a call with a friend or a group is that same thread, not a separate call-only chat, so what you say in a call is still there afterwards and your place in it is kept when you step out and back.
Up to six people at once, streaming straight between your machines. The server introduces you and then gets out of the way — it never sees a frame or hears a word.
A share travels as its own second video track, so people see two tiles they can pin independently instead of one that keeps swapping between your face and your desktop.
Stream the game and keep your notifications to yourself. A small native Windows component captures a single application’s audio.
Ask for control, or grant it, and their mouse and keyboard reach your desktop. Ends the moment you switch what you are sharing.
Drag someone’s screen share onto a second monitor and keep working. Audio keeps playing from the main window.
A real global key hook rather than a window shortcut, so push-to-talk works while you are in a game. Every binding is yours to change.
Move from Wi-Fi to a hotspot mid-call and the connection re-establishes itself instead of quietly dying, with a per-person "reconnecting" state while it does.
Detach every tile into a second window and get the main one back for whatever you were actually doing.
A small always-visible view of whoever is talking, for when VibeCord is behind everything else.
Right now control is handed over wholesale. The nicer version shows both pointers at once so you can guide someone instead of taking the wheel.
An Applications tab beside Screens and Windows, so twelve browser tabs stop filling the picker.
Direct messages, threads, and everything in them
One box across every DM, group and channel you are allowed to read — and only those, resolved on the server rather than filtered after the fact.
Click a search result or a reply and land on that message with the conversation around it loaded, wherever in the history it lives.
Pass a message into another conversation with a card showing where it came from, built from what the server knows rather than what the sender claims.
If something stops a message going out, it says so and tells you why, with a way to try again or clear it away. It used to sit there reading "Sending..." for as long as the app stayed open. Messages typed while you are offline are unaffected — those are queued and still go.
Pick one of five skin tones from the emoji picker and every emoji that supports one is drawn that way — in the picker, in the shortcode suggestions, and in whatever you send or react with. It is remembered between restarts.
When someone messages you while you are reading a community, their picture appears in the narrow bar on the left. Click it to go straight to that conversation; it disappears once you have read it.
Right-click selected text to copy it or search the web for it, right-click a picture to copy or save it, and right-click any text box for the usual cut, copy, paste and select all. Options that would not do anything are greyed out rather than looking available.
A searchable picker with around 1,900 emoji, shortcode autocomplete as you type, and a bundled font so a message looks identical on Windows and on Android.
Straight between your two machines when you are both online. When they are not, the file is encrypted in your app before it is parked for pickup — the server stores bytes it cannot read, and deletes them once collected.
Pictures render in the thread instead of arriving as attachments to download.
Fix a typo, take a message back, or react to one. Everything syncs to the other person and to your own other devices.
Quote the message you are answering, pull someone in by name, and see when the other side is writing.
Long code blocks collapse behind a Show more rather than eating the thread.
Custom emoji for a community, picked from the composer like any other. The bundled set covers everyone today; the inside jokes are the missing half.
Messages already travel encrypted, and the database they live in sits on an encrypted volume. Secret chats would add a stronger mode on top: keys held only by your two devices, so a conversation is readable there and nowhere else. Researched and designed — a real project, and not started.
Who you can reach, and who can reach you
An emoji, a short line of text, and an expiry if you want one.
Which chats sit in your rail, their order and which ones you muted are kept with your account, so a new PC or a fresh install shows the same list.
You cannot get in without a code, and you cannot call someone who has not accepted you. Both are enforced on the server, not in the app.
Presence that updates itself, plus automatic Busy while you are in a call so nobody rings you mid-sentence.
Avatar, handle, bio, member-since, mutual friends and a message box, from anywhere a name appears.
Three distinct levels. Blocking is enforced on the server and hides you both from each other; reporting files it for whoever runs the server.
One move, once a month, with your former handle shown on your profile for ninety days so friends are not left guessing.
Call a friend and their app rings — including on a phone with VibeCord closed. They choose independently whether their camera comes on.
Somewhere for more than two people
A record of who changed the community and when — roles, channels, members, invites, bots, the name and icon — that can be filtered to one kind of change. Who can read it is a permission of its own, and it only lets them look.
Who is in the room, who is muted, who is sharing — at a glance, without leaving the call.
A named conversation for a handful of people. Starting a group call rings nobody: it posts that it started and everyone sees a live "N in call · Join" banner.
The bigger shape: many channels, a member list, and per-channel history.
Roles, per-channel overrides, and a resolver that runs on the server — the app is told what you may do rather than deciding for itself, so a modified client gains nothing.
Codes people redeem, with an optional expiry and a maximum number of uses. Nobody can be added to a community without their say-so.
The everyday furniture of a busy channel.
Hand a community to someone else, and drag the rail into whatever order makes sense to you.
Drag-reordering shipped; grouping communities into collapsible folders is the follow-on.
The same account, in your pocket
A direct chat shows Delivered under your last message, and Seen once they have read it — the same line the computer app shows, and it follows the same read-receipts setting on both sides.
Change your display name, your #number and your profile bio without opening the computer app. The once-a-month limit on a name change is the same one it has always been.
Long-press a message and pick Forward to send it to a friend, a group, or any channel you can post in — and a message forwarded to you shows who wrote it and where it came from, the same as on the computer.
The phone is not a viewer. Everything you do in a thread on the desktop works there too.
Set your profile picture straight from your phone’s gallery or camera.
Join, talk, and see everyone else — including someone’s shared screen. The phone speaks exactly the same protocol as the desktop app.
A full-screen incoming-call notification, with the app closed, over a wake push that carries no message content.
Send your camera into a call, attach a photo, and receive and save a file someone sends you.
The app updates itself in the background from the same server, so the phone does not fall behind the desktop.
Turn the phone sideways and give a shared screen the full width of the display.
The phone gets the same straight-between-devices transfer the desktop already uses when you are both online. The encrypted relay handles it in the meantime.
Honestly: not scheduled. It needs a Mac to build on and a paid developer account, and Android came first because that is what the group carries. The web client below is the realistic route onto an iPhone.
No ads, no tracking, no company
The whole stack gets audited in depth, findings are fixed in tiers, and the ones deliberately not fixed are written down with the reason. The most recent pass was September 2026.
The live store, and the secrets the service runs on, live inside an encrypted container rather than on the bare disk.
Every nightly backup is encrypted the moment it is made, to a key that is kept offline and does not exist on the server. The server cannot decrypt its own backups.
Every live login, with a revoke that actually severs it — the connection drops, it does not merely stop being listed.
A relayed file is encrypted in your app before it leaves, and deleted after pickup. The server carries the envelope, never the contents.
Audio and video go directly between people. The server hands out the introductions and cannot see the conversation even if it wanted to.
There is no telemetry, no tracking, no ad network and nothing to sell, because there is no company. Crash reports exist and are opt-in.
Only meaningful once end-to-end chats exist: a recovery code so switching phones does not mean losing your history.
Letting something else talk in the channel
A community’s member list shows its bots in a group of their own at the bottom, each with its picture, a BOT tag, and a line from whoever made it saying what it does. Finding out what a bot is for no longer takes the permission to manage them.
A bot now sees who wrote the message it is answering, so it can greet you, mention you properly, or keep a tally with names in it. It can also be allowed to read the member list — a separate permission, off unless whoever installs the bot ticks it.
The bot API reference is published as plain text as well as a web page, so you can point a model at it and ask it to write you a bot. Both come from the same source, so the version the model reads cannot drift from the one you read.
Each bot in a community’s member list carries a status dot, so you can tell at a glance whether its script is up. Before this, the only person who could tell was whoever made the bot.
Bots turn up in the @ list alongside people, so you can address one directly instead of knowing the magic word its author chose. A bot is only offered in channels it can actually read, and always carries a BOT tag — bot names are chosen by whoever made them, so one could be called anything a person could.
A bot can appear in the “is typing…” line while it thinks, so a slow answer reads as an answer on the way rather than as silence.
Register a bot, get a token, run the script wherever you like. A bot is a separate kind of login with its own permissions — never a person’s account in disguise.
Create and manage your bots in the browser, reached by a one-time handoff link from the app so there is no password form on the public web.
Community managers choose which bots are present and which channels they can see.
A bot can post, reply, mention someone, react, and go back and edit its own message. Clickable buttons and menus are wanted but not committed.
Expose the bot API the way an AI assistant expects to find it, so a model can read a channel it has been given access to and answer in it.
A community that runs a team
Turn off images and files, reactions, voice calls or invites for everyone in a community at once. Roles keep their permissions, so switching a feature back on restores exactly what they had, and invite links pause rather than die.
Switch remote control off for a whole community, or allow it only for some roles in a voice channel. Whoever is sharing still says yes or no to every request.
A community owner can have old channel messages deleted automatically — after a day, a week, a month, three months or a year. Everyone in the community can see the setting beside each channel name, and direct messages are never affected.
Events with repeats, per-occurrence edits, and a channel that fills up ahead of you rather than behind you.
Who reports to whom, as a real structure rather than a role colour.
Recurring hours per member, with one-off deviations and corrections — the thing everything else here is measured against.
Define the kinds of absence, set what each person gets, and let them see their own balance and request time off through an approval flow that prices it from their actual schedule.
Someone outside their working hours, or on approved leave, looks that way in the member list without having to say so — and their card shows the time where they are, so you know before you call whether it is the middle of their night.
Who is out this week, on the team calendar, with a warning when too much of one department books the same days.
A CSV for payroll, a per-person statement, and carry-over that applies and expires on its own at year end.
VibeCord without installing anything
The largest single thing on this list. Most of the machinery is already portable — the call engine and the protocol are shared code with no Windows in them — so this is about a new home for the interface, not a rewrite.
Send someone a link and let them into one call, once, without signing up for anything. Only possible once the browser client exists.
A browser cannot capture one app’s audio, cannot inject remote control, and cannot hold a global push-to-talk key. Where the web version stops needs writing down rather than discovering.
How to read this. A dot filled in means it is in the app you can download right now, with the month it got there. A ring means it is being worked on. A dashed ring is planned, and a dotted one is still being thought about — designed or researched, not committed. Dates are when something reached everyone's app, not when the code was written.