WebTerm is a browser-based terminal sandbox for the AI era. As AI coding tools become mainstream, CLI literacy matters for both engineers and non-engineers. But many beginners are afraid to open their local terminal because they might break something. WebTerm provides an ephemeral, no-signup, free, and safe environment to learn Linux commands, Git workflows, and CLI-based AI tools. Currently in beta β feedback is welcome!
Learn the terminal like a game β in a browser sandbox
An interactive platform for learning the terminal, Git, and Vim. Hand-drawn slides teach the concept; a real in-browser sandbox checks every command you type. Progress across a 3D world map with a companion that evolves. 12 courses, 129 lessons, all free.
Earlier this year I launched WebTerm here: a browser terminal where running `rm -rf /` breaks nothing. More than 1,000 people use it every day now.
Its UI is stripped down to almost nothing, which experienced developers liked. But it's for trying a command the moment you think of it, not for learning things in order, and there was nowhere to explain anything properly.
Engineers who want to get better keep asking me what they should be learning. AI writing the code doesn't end that. How much of the AI's work you refuse to leave as a black box is what decides whether you can step in as a professional, and the more work AI absorbs, the fewer chances there are to build that experience. So I built WebTerm Learn.
Hand-drawn slides teach the idea, then you type the real commands in a real terminal. Every command is checked as you go.
The curriculum is a 3D world map. Each course is a land, so you always know where to go next.
Missions drop you into real incidents: a release that took down production, a secret pushed to a repo.
Pilots meet an engine failure in a simulator, not in the air. Developers should have the same thing.
Terminal, Git, and Vim today, with data analysis, software development, networking, and security to come. All free, and the first lesson takes about a minute.
Whatever you think, I want to hear it. I'll read every comment and reply.
Thanks :) The code was written by AI, but almost every decision was mine. Answer checking, recovery when a learner breaks their environment, the pacing of each slide. I just didn't do the typing.
The first two took by far the hardest design work in the whole project.
Report
Just tried it. Really good git lessons. The other format that's on https://webterm.app/ is good too.
Thank you! Git is where I've poured the most hours, so that's great to hear. And glad you found webterm.app too, that's actually where the whole project started!
Report
I definitely remember the phase where every terminal command felt like it had a 50/50 chance of doing what I wanted or destroying my computer haha. This feels like a nice way to get comfortable with it. Congrats on getting this out there! @daiaoki
One day since launch! People from all over the world have started learning, and warm messages keep coming in. Thank you so much!
Report
The no-signup and free approach makes this really easy to try. I especially like the balance of hand-drawn explanations with a real terminal instead of learning everything from static examples.
No-signup was a very deliberate choice. I hated the idea of someone getting curious and then hitting a signup wall before even typing a single command. And yes, static examples were exactly what I was trying to get away from.
Glad it clicked!
Report
@daiaoki Checking every command as you go is where this gets hard, because on a real terminal there are usually five ways to get the same result, and a learner who reaches the right end state with different flags than you expected should still pass. Does the check compare the command string, or the resulting state of the sandbox filesystem?
Great question, and this was one of my biggest design worries too.
The checks run against the result wherever multiple commands can get you there: the sandbox filesystem, the git state (staging area, branches), or the command output. So git switch -c and git checkout -b both pass, and any regex that produces the right grep output counts, not just the one I had in mind.
The command string is only matched in the few lessons where a specific flag is itself the thing being taught.
That said, if you ever hit a check that rejects something a real terminal would accept, that's a bug in my book and I'd love to hear about it.
WebTerm
Hi Product Hunt! I'm Dai, the maker of WebTerm.
Earlier this year I launched WebTerm here: a browser terminal where running `rm -rf /` breaks nothing. More than 1,000 people use it every day now.
Its UI is stripped down to almost nothing, which experienced developers liked. But it's for trying a command the moment you think of it, not for learning things in order, and there was nowhere to explain anything properly.
Engineers who want to get better keep asking me what they should be learning. AI writing the code doesn't end that. How much of the AI's work you refuse to leave as a black box is what decides whether you can step in as a professional, and the more work AI absorbs, the fewer chances there are to build that experience. So I built WebTerm Learn.
Hand-drawn slides teach the idea, then you type the real commands in a real terminal. Every command is checked as you go.
The curriculum is a 3D world map. Each course is a land, so you always know where to go next.
Missions drop you into real incidents: a release that took down production, a secret pushed to a repo.
Pilots meet an engine failure in a simulator, not in the air. Developers should have the same thing.
Terminal, Git, and Vim today, with data analysis, software development, networking, and security to come. All free, and the first lesson takes about a minute.
Whatever you think, I want to hear it. I'll read every comment and reply.
@daiaokiΒ What a cool product!
WebTerm
@patraΒ
Thank you, and thanks for the kind words all over the thread today!
Cool gamified format :) Was the project itself also vibecoded?
WebTerm
@natalia_iankovychΒ
Thanks :) The code was written by AI, but almost every decision was mine. Answer checking, recovery when a learner breaks their environment, the pacing of each slide. I just didn't do the typing.
The first two took by far the hardest design work in the whole project.
Just tried it. Really good git lessons. The other format that's on https://webterm.app/ is good too.
WebTerm
@patraΒ
Thank you! Git is where I've poured the most hours, so that's great to hear. And glad you found webterm.app too, that's actually where the whole project started!
I definitely remember the phase where every terminal command felt like it had a 50/50 chance of doing what I wanted or destroying my computer haha. This feels like a nice way to get comfortable with it. Congrats on getting this out there! @daiaoki
WebTerm
@zach_francisΒ
Haha, exactly! That 50/50 feeling is one of the things I wanted to get rid of with WebTerm Learn.
Thanks so much for checking it out and for the kind words!
WebTerm
One day since launch! People from all over the world have started learning, and warm messages keep coming in. Thank you so much!
The no-signup and free approach makes this really easy to try. I especially like the balance of hand-drawn explanations with a real terminal instead of learning everything from static examples.
WebTerm
Thanks!
No-signup was a very deliberate choice. I hated the idea of someone getting curious and then hitting a signup wall before even typing a single command. And yes, static examples were exactly what I was trying to get away from.
Glad it clicked!
@daiaoki Checking every command as you go is where this gets hard, because on a real terminal there are usually five ways to get the same result, and a learner who reaches the right end state with different flags than you expected should still pass. Does the check compare the command string, or the resulting state of the sandbox filesystem?
WebTerm
@clement_avqΒ
Great question, and this was one of my biggest design worries too.
The checks run against the result wherever multiple commands can get you there: the sandbox filesystem, the git state (staging area, branches), or the command output. So git switch -c and git checkout -b both pass, and any regex that produces the right grep output counts, not just the one I had in mind.
The command string is only matched in the few lessons where a specific flag is itself the thing being taught.
That said, if you ever hit a check that rejects something a real terminal would accept, that's a bug in my book and I'd love to hear about it.