HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
microsoft
terminal
C++2018–2026
microsoft / terminal

terminal

The new Windows Terminal and the original Windows console host, all in the same place!

202Distinct people
270Mentions
2Explicit recommenders
105.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The new Windows Terminal and the original Windows console host, all in the same place!

GitHub

Where it is used

  • Visual Studio — Visual Studio uses Windows Terminal’s core to power its integrated terminal, providing a more robust terminal experience and faster adoption of new functionality. Source

What people are saying

A quick off-the-cuff remark based solely on the title: in 2024, I think the state of the terminal has never been better, in large part to Microsoft making a high quality…

eminence32 used a recommendation phrase. 2 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 12:03:30 PM UTC.

Mentions over time

HN mentions by year270 dated mentions

Observed mentions: 2018-03-30 18:23:14 UTC to 2026-10-22 16:10:14 UTC.

02040602018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 10 mentions; 0 submissions, 10 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 45 mentions; 12 submissions, 33 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 54 mentions; 6 submissions, 48 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 56 mentions; 7 submissions, 49 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 47 mentions; 4 submissions, 43 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 29 mentions; 6 submissions, 23 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 13 mentions; 1 submissions, 12 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 9 mentions; 0 submissions, 9 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC10010
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC451233
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC54648
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC56749
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC47443
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC29623
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC13112
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC909
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC716

What Hacker News says

47 sources
I've done lots of dev on both linux and Windows. Neither is "better" IMHO. I started on Linux, but today my main work and personal systems are both Win10. I also have a persoanl Linux laptop I use sometimes (currently Pop_OS, because I felt like trying that). There's certain things easier on one or the other, usually caused by silly hardcoding of paths (or other OS-specific assumptions). I've run into this with python packages on Windows for sure. My Windows dev is mostly limited to .net, and I've been writing cross-platform for years (first via Mono, now .net core / .net 6). Most challenges with cross-platform .net are caused by hardcoding Windows-specific paths and backslash (vs using Environment.* and Path.Combine()), and secondarily by using win32-specific things (eg: registry). Tip for Windows dev use: install Windows Terminal [1], s
Read the rest
coop [2], oh-my-posh [3], and busybox [4]. Makes the cli so much more usable, at least for someone like me with linux CLI muscle memory (ls, grep, etc). I've found the combo of busybox utils and PowerShell is very productive. I nearly always have at least a couple terminal tabs open, and I'm nearly 50/50 of whether I use cli or explorer to browse or operate on files. [1] https://github.com/microsoft/terminal [2] https://scoop.sh/ [3] https://ohmyposh.dev/ [4] https://scoop.sh/#/apps?q=busybox&s=0&d=1&o=true
In Software I’m thankful for (2021)
> It sounds like you’re talking about output, not input. Sorry if I misunderstood your question! However, for inputs the situation is essentially similar: the standards again depend on the terminal, and there can be multiple interpretation than can be conflicting. Take for example Control-H and Control-? : which is delete and which is backspace depend on the terminal you use! > I’ve searched several times for such standards before but never had any luck… There are sources, mostly Thomas E. Dickey (of xterm fame) but personally, I try to take an emulator and make it behave to what my fingers are doing with the minimum level of configuration. To follow up on Control-H and Control-?, here's what my .inputrc does: ### Delete to the right will be remapped to Delete "\e[3~": delete-char # keypad on . #"\eOn": delete-char # Special case for VT10
Read the rest
0 (borks backspace -> make it conditional) $if term=vt100 "\C-?": delete-char $endif ### Delete to left will be remapped to Backspace "\C-?": backward-delete-char # keypad on 5 #"\eOu": backward-delete-char # Special case for VT100 (borks backspace -> make it conditional) $if term=vt100 "\C-H" : backward-delete-char $endif (yes, the numpad delete has its own case!) Here's another one, for Control-Backspace and Control-Delete ### Line cuts will Ctrl-Backspace and Ctrl-Delete "\C-_": backward-kill-line "\e[3;5~": kill-line # Ctrl-Delete variants for tmux and urxvt "\e[M": kill-line "\e[3^": kill-line And last time I checked, Windows terminal needed proper remaps cf https://github.com/microsoft/Terminal/issues/755 like { "keys": "ctrl+backspace", "command": { "action": "sendInput", "input": "\u0017" }, This would piggyback on "\C-h" backward-kill-word - which might be incompatible as it's got a different meaning for VT-100 as noted above. Quoting you again: > I’ve searched several times for such standards before but never had any luck… You shouldn't bother too much about that: terminals are just tools to help you do your work, and while sometimes you can use a lot of pre-existing configurations or documentation to have as much compatibility among the various standards as possible, there are other times when you need to break the standards that stand in your way. For example, I'm a Windows fan, so I believe Ctrl-C should be copy, Ctrl-V paste, and I don't really care about the traditional unixisms that would cause me try to learn to use Shift-Control-C for copy and Shift-Control-V for paste (just... no!!!) You may disagree with that, so let's take a more staightfoward example: I care even less of the more obscure unixisms like Ctrl-S/Ctrl-Q that I rarely need. Who needs to "freeze" the tty output in 2022? So in that case, I've remapped Ctrl-S to "kill word forward", something usually done with Esc-d by default. To achieve that, in my .bashrc I first clear the defaults with stty: ## Remap ctrl-c to ctrl-x to copy/paste with ctrl-c and ctrl-v, and disable ctrl-s/ctrl-q stty intr ^X stop undef start undef rprnt undef discard undef swtch undef -ixoff -ixon # The above doesn't show ^S,^Q,^R and ^O anymore in stty -a Then I can do the remappings in my .inputrc: ### Backward-kill-word is ctrl-w, while kill-word is alt|esc-d, # so instead, map ctrl-s which makes ctrl-k|u and ctrl-w|s very close "\C-s": kill-word All that to say, standards can be helpful, but there's nothing set in stone: with Control-H and Control-? already causing such headaches (but following all the standards) I don't feel so bad for abusing the standards with my use of Control-S for forward kill word, as it complements nicely the existing Control-K, Control-U and Control-W (all the 3 of which are standard BTW!)
In Everything you ever wanted to know about terminals
> Is that correct? It's not exactly like that - it's more like there are competing "standards" and interpretations of these standards, and sometimes supporting one means not supporting the other. Fortunately, such things are rare, and can be addressed by GUI options. Take for example SGR1 for "bold/intense" text: read the whole issue that came to Microsoft Terminal team in 2018 up to its most recent discussions on https://github.com/microsoft/terminal/issues/109 then check the "simpler" version in wikipedia https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_.28Select... and you will realize there's no "right" answer between bold and bright (or both!), just different preferences and interpretations of the standards.
In Everything you ever wanted to know about terminals
You can launch into any security context but merging multiple contexts under a single window is not supported. It has to do with Windows lacking session elevation for pipes but supporting it for window handles https://github.com/microsoft/terminal/blob/main/doc/Niksa.md... If you want to get real hacky in the meantime you can run the ssh server service and have a short alias to ssh to localhost as a user but now you have that extra abstraction between to deal with.
In Windows Terminal Source Code
I fully admit I could be wrong, and I didn't explain myself adequately re: ETM. ETM has been enabled since Vista, but you can get a full list of all ETS logs very easily (via `logman query -ets`). The question is what's consuming it, and as far as I can tell the basic telemetry settings won't send anything remotely beyond some incredibly basic information. This issue seems to fully explain the issue with the telemetry: https://github.com/microsoft/terminal/issues/5331 The biggest takeaway to me here (besides the explanation of the telemetry levels) is that the processes in question are cmd, powershell, bash, etc, and not what you are running in them. Even if you have enhanced telemetry enabled it wouldn't bubble up what you're running underneath the console process as a process name.
In Windows Terminal Source Code

Showing the 15 most recent of 47 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.