{"slug": "terminal-is-your-friend", "title": "Terminal is your Friend", "summary": "A developer built Terminal Is Your Friend, an open-source JavaScript/TypeScript playground that runs code in a dark terminal with a sandboxed runtime and an AI instructor that explains errors and results rather than writing solutions. The project, created for a DevOps friend learning JavaScript, includes a minimal TSX-style terminal UI and is powered by the developer's experimental TypeScript fork supporting the pipeline operator. The stated goal is to test whether AI can help someone learn programming without taking programming away from them.", "body_md": "*This is a submission for the [Hacktoberfest Weekend Challenge: Build for a Friend](https://dev.to/challenges/hacktoberfest-weekend-2026-10-01)*\n\nMy devops friend wants to learn JavaScript, but she is always getting lost in the UI.\n\nSo I removed the UI.\n\n**Terminal Is Your Friend** is a small JavaScript/TypeScript playground where you can write code directly, run it, see the result, make mistakes, and continue.\n\nThere is also an AI instructor, but its job is not to write the code for you.\n\nIt tries to teach programming from simple things first: numbers, strings, conditions, arrays, loops and functions. Strong foundations before frameworks and abstractions.\n\nKISS.\n\nLater, when the basics are clear, you can discover TypeScript and finally a tiny TSX interface built directly into the terminal.\n\nTry it here:\n\n[https://terminal-is-your-friend.vercel.app/](https://terminal-is-your-friend.vercel.app/)\n\nYou can start with something as simple as (or even simple):\n\n``` js\nconst randomid = () => Math.random().toString(36).slice(-7).toUpperCase()\nreturn `${randomid()}-${randomid()}-${randomid()}`\n```\n\nand just continue from there.\n\nThe project is open source on GitHub:\n\nThe TypeScript compiler used by the project is based on my experimental TypeScript fork with support for the pipeline operator.\n\nThat experiment lives here:\n\n[TypeScript Pipeline Operator Fork](https://github.com/pengeszikra/TypeScript)\n\nThe application is intentionally small.\n\nIt is basically a dark terminal, a sandboxed JavaScript/TypeScript runtime and an AI instructor.\n\nThe instructor sees the code, the result and errors, and tries to explain what happened instead of immediately producing a solution.\n\nThe terminal also has a tiny TSX system.\n\nFor example:\n\n``` js\nreturn <view small center>\n  Hello World!\n  <button onClick={() =>\n    <view small center>N E X T</view>\n  }>\n    next\n  </button>\n</view>\n```\n\n`<view>` simply creates the next terminal screen.\n\nThis is intentionally not React.\n\nIt is a small step between writing expressions in a terminal and understanding why UI components work at all.\n\nThe project also uses my TypeScript pipeline-operator fork.\n\nI like the pipeline operator for the same reason I like this project:\n\n```\nvalue\n  |> step1\n  |> step2\n  |> result\n```\n\nIt keeps the direction of the program visible.\n\nBecause I could experiment.\n\nI could fork TypeScript, change the language, use open tools around it, build a strange little runtime, and connect an AI instructor to it.\n\nNone of these experiments need permission.\n\nAnd somebody else can fork this project tomorrow and make it stranger.\n\nThat is the interesting part.\n\nThe project itself was developed together with AI tools, but the important experiment for me was not AI generating code.\n\nIt was the opposite question:\n\n**Can AI help somebody learn programming without taking programming away from them?**\n\nThat is what the instructor is trying to explore.\n\nHacktoberfest Weekend Challenge — **Build for a Friend**", "url": "https://wpnews.pro/news/terminal-is-your-friend", "canonical_source": "https://dev.to/pengeszikra/terminal-is-your-friend-2b49", "published_at": "2026-10-04 09:38:45+00:00", "updated_at": "2026-10-04 09:42:19.296919+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-products", "artificial-intelligence"], "entities": ["Terminal Is Your Friend", "TypeScript", "GitHub", "Vercel", "Hacktoberfest"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/terminal-is-your-friend", "markdown": "https://wpnews.pro/news/terminal-is-your-friend.md", "text": "https://wpnews.pro/news/terminal-is-your-friend.txt", "jsonld": "https://wpnews.pro/news/terminal-is-your-friend.jsonld"}}