For practice
Practise together. Free forever.
Paste any problem, get a working shell and a test suite that proves you solved it, and send one link to whoever is practicing with you. Neither of you makes an account, and none of it costs anything — not now, not later.
What “free forever” actually means
Four things, and none of them has a date on it.
No account, for either of you
You open a room and they open a link. There is no sign-up screen, no password, no email to confirm and nothing to reset six months from now.
No card, no trial, no seat count
Practicing together is the product, not a sample of it. Nothing here runs out after fourteen days or after the second person joins.
Your problems, not a paywalled bank
Work the questions you actually care about — the one from last week’s onsite, the one in the textbook. There is no premium question set.
Everything on this page, always
Generated challenges, verified tests, the sandbox, video, the cursor and the pointer. A paid plan for hiring teams is coming; this list is not what it takes away.
How to use it
Five minutes end to end, and the first one is the only one that needs explaining.
Paste the problem
Open cocode and paste the challenge into the box on the front page, in plain English — a paragraph off a job posting or out of a book is exactly the right shape. Include at least one worked example, something like
nums = [2,7,11,15], target = 9 → [0,1].The examples are what the tests get built from, so a problem with none cannot be built. Then press Build the challenge.
Pick a language
TypeScript, JavaScript, Python and Rust. The picker sits in the room’s header, and the language belongs to the room rather than to your screen — switch it and it switches for both of you.
cocode writes the shell in that language: the function signature, the types, an empty body with your move in it. Alongside it comes a test file built from the examples in your prompt, already checked against a reference solution, so a failing test means the code is wrong rather than the test.
Send one link
Copy the invite from the room and send it however you already talk to each other. They open
cocode…/app#room=ABC123and they are in — no account, no install, no extension, no waiting room.The room code travels in the link’s
#fragment, which browsers never send to a server, so it stays out of access logs and out of anything either of you clicks from the page.Solve it together
You each get a cursor in the editor and a colour that stays yours — aqua is you, magenta is them — plus a shared pointer and a shared selection. Video sits beside the code in the same tab, so nobody is juggling a call in one window and an editor in another.
The pointer is the one you will use most. You can aim it at line 14 and say “this one” without reaching over and taking the keyboard away, which is the difference between helping someone and solving it for them.
Run the tests
Press Run. The suite runs in the browser, inside a sandbox, and each case turns green or red in front of both of you — no setup, no toolchain, nothing installed on either machine.
Then do it again with the next problem. Closing the tab ends the room; opening cocode again starts a fresh one.
What is in the room
All of it, on the free plan, which is the only plan a practice pair needs.
Tests from your own examples
The examples in the problem you pasted become the cases in the suite, so the tests are about your problem rather than a near neighbour of it.
Verified before you see them
Every generated suite is run against a reference solution first. A suite that does not pass its own answer never reaches the room.
4 languages
TypeScript, JavaScript, Python and Rust. One per room, switchable at any time, for both people at once.
Run it in the browser
The suite executes in a sandbox in the page. Nothing is installed and nothing escapes onto either machine.
Video in the same tab
Two tiles beside the editor. The conversation and the code are in one place, which is where an interview actually happens.
Cursor, pointer and selection
See where they are typing, what they are pointing at and what they have highlighted — the three things you would do with your hands in person.
Questions
The ones people ask before their first room, answered honestly.
What happens to my code?
It lives in the room while the room is open. Rooms are ephemeral — close the tab and it ends, and there is nothing left to go back to. Copy anything you want to keep before you leave.
Do I need an account?
No, and neither does the person you invite. There is no sign-up anywhere in cocode, which is also why there is no history: nothing is attached to a person because there is no person to attach it to.
Which languages can I use?
TypeScript, JavaScript, Python and Rust. You pick one per room and can change it mid-session; the change applies to both of you, because the language belongs to the room.
What if the challenge fails to build?
cocode says why instead of failing quietly — usually the prompt has no worked example, or it is not clear what the function should return. Fix that line and try again, or open an empty room and write the shell yourself.
Is it really free?
Yes, permanently, for everything on this page. A paid plan for hiring teams is being built for the things that outlive a session — recordings, transcripts, scorecards — and the live session itself stays free.
Can I use it to interview someone?
Yes, and people do; it is the same room either way. If you are hiring as a team, see what is coming for teams.
Bring a problem and a friend.
The room is already set up. It takes one paste and one link.