[{"data":1,"prerenderedAt":646},["ShallowReactive",2],{"project-45181535":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":43,"post_text":46,"what":47,"said":72,"maker_in_thread":195,"shape":205,"grid":210,"attempts":609,"same_week":610,"maker_shows":44,"maker_hidden":638,"reader_version":639,"card":640},"45181535","Term.everything","Term.everything – Run any GUI app in the terminal","title","Show HN: Term.everything – Run any GUI app in the terminal","https:\u002F\u002Fgithub.com\u002Fmmulet\u002Fterm.everything","github.com","mmulet",1757423790,2025,1094,144,12,3837,1,"legend","dev_tools","terminal gui embedding","cli",[24,25,26,27],"wayland compositor","terminal gui","run gui in terminal","chafa","loved",0.639,{"positive":31,"neutral":32,"mixed":18,"critical":33},50,16,5,72,{"idea":36,"execution":39,"performance":40,"docs":42},{"positive":37,"critical":38},25,2,{"positive":18,"critical":18},{"positive":41,"critical":18},0,{"positive":38,"critical":41},[33,33,41,44,44,18,33,45,33,33,41,33,33,33,33,33,41,33,33,18,18,33,33,33,33,33,33,33,44,33,41,33,33,33,38,33,33,33,33,45],3,4,"I made a built-from scratch Wayland Compositor to display any GUI app* in the terminal! I think there is a lot of unexplored potential in custom Wayland compositors, a lot of really cool things you can embed existing applications into! So, I started with embedding apps into the terminal because that is the easiest input\u002Foutput (output is just utf-8 and I use the great `chafa` library for that, and I just read from stdin for the input).\n\nIf you have any other ideas for cool Wayland compositors, let me know. I purposedly wrote 80% the app in Typescript to appeal to the most developers and attrac",{"problem":48,"audience":54,"pricing":54,"motivation":55,"time_to_build":54,"stack":59,"openness":71,"stage":71,"team_size":71},{"value":49,"source":50,"evidence":51},"Running GUI applications inside a terminal over stdin\u002Fstdout, including via SSH","maker",[52],{"id":53},"post",null,{"value":56,"source":50,"evidence":57},"Explore unexplored potential of custom Wayland compositors and embed existing apps into the terminal",[58],{"id":53},[60,64,67],{"value":61,"source":50,"evidence":62},"TypeScript",[63],{"id":53},{"value":27,"source":50,"evidence":65},[66],{"id":53},{"value":68,"source":50,"evidence":69},"Canvas2D API",[70],{"id":53},"unknown",{"praise":73,"objections":118,"requests":136,"questions":154,"alternatives":169},[74,94,103],{"value":75,"source":76,"evidence":77},"Fun and delightful, an impressive useless hack","commenter",[78,82,86,90],{"id":79,"by":80,"text":81},"45200895","nick__m","That's awesomely useless, it straddles the line between programming and art. I am sure it was a great and fun learning experience. Well done !",{"id":83,"by":84,"text":85},"45201051","actsasbuffoon","Yeah, I can’t explain why this project makes me so happy because I struggle to think of any time where I’d need this, but it puts a big, dumb grin on my face.",{"id":87,"by":88,"text":89},"45202576","reactordev","This is one of those things that pushes the boundaries to nowhere, yet everywhere at the same time whilst being incredibly awesome and something you can show off ad infinitum.…",{"id":91,"by":92,"text":93},"45207276","shonku","Absolutely love the energy here. You really terminally outdid yourself here. Consider me officially shell-shocked.",{"value":95,"source":50,"evidence":96},"Running Doom and VS Code on iPad demos",[97,100],{"id":98,"by":11,"text":99},"45203700","Ask and ye shall receive: Running doom: https:\u002F\u002Fgithub.com\u002Fmmulet\u002Fterm.everything\u002Fblob\u002Fmain\u002Fresources\u002Fgraphics\u002Fdoom.gif I had the change a couple of line to make it work because…",{"id":101,"by":11,"text":102},"45202700","Behold! running on the iPad! Screen Recording - https:\u002F\u002Fgithub.com\u002Fmmulet\u002Fterm.everything\u002Fblob\u002Fmain\u002Fresources\u002Fgraphics\u002Fon_ipad_screen_recording.gif A video of it on the iPad -…",{"value":104,"source":76,"evidence":105},"Useful for remote SSH access to GUI apps",[106,110,114],{"id":107,"by":108,"text":109},"45204865","dmayle","Definitely not useless! I run a ttyd server to get terminal over https, and I have used carbonyl over that to get work done. That's limited to a web browser (to get access to…",{"id":111,"by":112,"text":113},"45202709","ugh123","This could be used on build machines I own where I occasionally need to interact with the desktop and\u002For browser on the machine and vnc or other desktop sharing is impractical or…",{"id":115,"by":116,"text":117},"45211700","wdavidw","A few years back, I was deploying, operating and debugging a Hadoop cluster with Kerberos enabled behind a firewall with only the SSH port being opened. Without a web browser…",[119,129],{"value":120,"source":50,"evidence":121},"Terminal resolution limits text readability and performance at high resolutions",[122,125],{"id":123,"by":11,"text":124},"45205973","Depends on what resolution your terminal is set to. (Not the resolution of the GUI app you use, just the resolution you display it). At low resolution (640x480) it’s pretty…",{"id":126,"by":127,"text":128},"45204435","IshKebab","I started working on this with the Kitty image protocol, but unfortunately that protocol is really unsuited to this sort of thing. Performance will be awful. The protocol is sort…",{"value":130,"source":50,"evidence":131},"No copy\u002Fpaste or mouse support yet",[132,135],{"id":133,"by":11,"text":134},"45205955","You will be able to copy\u002Fpaste with term.everything once I implement the Wayland copy\u002Fpaste interface (wl_data_device_manager).",{"id":101,"by":11,"text":102},[137,147],{"value":138,"source":76,"evidence":139},"Copy\u002Fpaste support",[140,144],{"id":141,"by":142,"text":143},"45205906","tombh","I think one significant difference though is that Browsh renders actual text for text content, so you can copy and paste, etc.",{"id":145,"by":142,"text":146},"45210557","OMG! That'd be AMAZING. But it still wouldn't render GUI text as terminal font text right?",{"value":148,"source":76,"evidence":149},"macOS version",[150],{"id":151,"by":152,"text":153},"45199274","alkh","This is so cool, thanks for sharing! Having this on a Mac would be great but I understand that this might be a huge undertaking :)",[155,162],{"value":156,"source":76,"evidence":157},"Whether it works on X11 hosts without Wayland",[158],{"id":159,"by":160,"text":161},"45202144","riddley","Do I need to be using wayland to try this? I'm still on x11.",{"value":163,"source":76,"evidence":164},"Whether it can run inside tmux or nested compositors",[165],{"id":166,"by":167,"text":168},"45201488","xiphias2","- Can you run a compositor inside a compositor? I'd love to just ssh to a server and run hyprland - doesTerm.everything run inside tmux with automatic window resizing? I guess…",[170,181,188],{"value":171,"source":76,"evidence":172},"Carbonyl",[173,177],{"id":174,"by":175,"text":176},"45201823","warwren","I remember the carbonyl project to run chromium in the terminal that got me really excited (https:\u002F\u002Fgithub.com\u002Ffathyb\u002Fcarbonyl) but it eventually became unmaintained. This is…",{"id":178,"by":179,"text":180},"45199902","fzorb","I remember seeing something similar named Carbonyl a while back. What a coincidence lol. https:\u002F\u002Fgithub.com\u002Ffathyb\u002Fcarbonyl P.S. This is very cool btw.",{"value":182,"source":76,"evidence":183},"Browsh",[184],{"id":185,"by":186,"text":187},"45204989","msdz","It's like a more generalized browsh[1]. [1] https:\u002F\u002Fwww.brow.sh\u002F",{"value":189,"source":76,"evidence":190},"Waypipe",[191],{"id":192,"by":193,"text":194},"45200706","20after4","You could use a terminal graphics protocol to render real graphics. But there is already waypipe¹ to do that kind of remoting. Without using an actual terminal. 1.…",{"comments":37,"answered":196,"key":197},8,[198,201,204],{"id":199,"text":200},"45201232","\u003C3",{"id":202,"text":203},"45202357","You can have a \u003C3 too!",{"id":133,"text":134},{"commenters":206,"max_depth":207,"maker_replies":37,"first_comment_mins":208,"lifespan_hours":209},95,7,37,136,[211,213,214,216,220,221,224,228,231,234,237,240,242,245,249,252,255,256,258,260,262,264,267,270,273,274,275,278,280,281,283,284,287,290,293,297,300,303,306,309,310,314,316,317,320,323,325,329,332,336,339,341,345,348,350,352,356,358,359,362,365,368,371,374,377,379,383,386,389,391,393,395,397,400,402,403,407,412,416,420,424,426,430,434,438,441,446,448,451,453,455,459,463,467,469,471,475,477,479,482,484,486,488,491,496,497,501,503,507,509,512,515,517,521,525,529,531,533,535,537,542,545,547,549,553,557,561,565,569,573,577,580,583,586,590,592,596,598,602,604,606],[79,41,33,212,80,41],"project\u002Fpositive\u002Fidea",[83,41,33,212,84,41],[199,41,41,215,11,18],"commenter\u002Fneutral\u002Fnone",[217,41,33,218,219,41],"45202269","project\u002Fpositive\u002Fnone","k-warburton",[202,41,41,215,11,18],[222,41,33,212,223,41],"45201507","snozolli",[225,41,41,226,227,41],"45203361","other\u002Fneutral\u002Fnone","anthk",[229,41,41,226,230,41],"45203831","DiggyJohnson",[232,41,41,226,233,41],"45204254","watersb",[235,41,41,226,236,41],"45232929","vrighter",[238,41,41,226,239,41],"45203832","hiccuphippo",[241,41,41,226,227,41],"45205007",[243,41,41,226,244,41],"45203688","hnlmorg",[246,41,44,247,248,41],"45202762","project\u002Fneutral\u002Fidea","pawelduda",[250,41,44,247,251,41],"45203120","unleaded",[253,41,41,226,254,41],"45205606","blooalien",[185,41,44,247,186,41],[141,41,18,257,142,41],"project\u002Fcritical\u002Fexecution",[133,41,41,259,11,18],"project\u002Fneutral\u002Fexecution",[145,41,44,261,142,41],"project\u002Fmixed\u002Fexecution",[263,41,41,259,11,18],"45212032",[265,41,33,212,266,41],"45203027","GTP",[268,41,41,226,269,41],"45207471","nicce",[271,41,41,215,272,41],"45208926","0points",[107,41,33,212,108,41],[87,18,33,212,88,41],[276,18,18,277,227,41],"45203384","project\u002Fcritical\u002Fidea",[279,18,41,215,88,41],"45205782",[98,18,41,259,11,18],[282,18,33,218,88,41],"45205779",[91,38,33,218,92,41],[285,38,41,226,286,41],"45209117","pbhjpbhj",[288,38,41,226,289,41],"45209951","psd1",[291,44,33,212,292,41],"45187943","tri2820",[294,45,41,295,296,41],"45204328","other\u002Fneutral\u002Fidea","marcodiego",[298,45,41,226,299,41],"45204457","colecut",[301,45,41,226,302,41],"45209629","saghm",[304,45,41,226,305,41],"45204767","GranPC",[307,45,41,226,308,41],"45209248","pndy",[174,33,33,212,175,41],[311,312,41,226,313,41],"45205082",6,"serbuvlad",[115,207,33,315,116,41],"project\u002Fpositive\u002Fexecution",[178,196,33,212,179,41],[318,196,41,226,319,41],"45200496","dodslaser",[321,196,41,215,322,41],"45200756","patcon",[324,196,41,215,11,18],"45201288",[326,327,33,218,328,41],"45207176",9,"roughly",[330,327,41,226,331,41],"45216067","codethief",[333,334,41,226,335,41],"45213492",10,"taviso",[337,334,41,226,338,41],"45213740","FortuneIIIPick",[340,334,41,215,335,41],"45214339",[342,343,33,212,344,41],"45213288",11,"SJC_Hacker",[346,16,33,212,347,41],"45200513","tracker1",[349,16,41,226,227,41],"45203393",[351,16,41,215,347,41],"45204048",[353,354,33,212,355,41],"45201985",13,"kposehn",[357,354,41,259,11,18],"45202189",[101,354,41,259,11,18],[360,354,41,215,361,41],"45203541","oarsinsync",[363,354,33,218,364,41],"45207581","chamomeal",[366,354,33,218,367,41],"45208798","jamiek88",[369,354,41,226,370,41],"45211621","jsjohnst",[372,354,41,373,11,18],"45212234","maker\u002Fpositive\u002Fnone",[375,354,41,226,376,41],"45203218","lights0123",[378,354,33,218,364,41],"45207538",[380,381,33,218,382,41],"45205896",14,"Guestmodinfo",[126,384,18,385,127,41],15,"project\u002Fcritical\u002Fperformance",[387,384,41,215,388,41],"45204606","ranger_danger",[390,384,41,215,127,41],"45210624",[392,384,41,215,388,41],"45214436",[394,384,41,215,127,41],"45216533",[396,384,41,215,388,41],"45217140",[398,384,18,277,399,41],"45207248","f33d5173",[401,384,41,215,127,41],"45208404",[111,32,33,212,112,41],[404,405,33,212,406,41],"45200644",17,"quotemstr",[408,409,33,410,411,41],"45209575",18,"project\u002Fpositive\u002Fdocs","camdroidw",[413,414,41,226,415,41],"45210773",19,"nxobject",[417,418,33,212,419,41],"45246458",20,"angg",[421,422,33,212,423,41],"45201062",21,"nixpulvis",[425,422,33,218,411,41],"45209616",[427,428,33,410,429,41],"45200762",22,"beckthompson",[431,432,33,212,433,41],"45206808",23,"user3939382",[435,436,33,212,437,41],"45201509",24,"babypuncher",[439,37,33,212,440,41],"45200658","christophilus",[442,443,44,444,445,41],"45199498",26,"project\u002Fneutral\u002Fnone","impoppy",[447,443,41,444,11,18],"45199594",[449,443,41,450,11,18],"45199968","maker\u002Fneutral\u002Fnone",[452,443,41,226,11,18],"45203705",[454,443,33,373,411,41],"45209607",[456,457,33,373,458,41],"45201493",27,"komali2",[460,461,33,212,462,41],"45200567",28,"lazyfanatic42",[464,465,33,218,466,41],"45199800",29,"chaps",[166,468,44,444,167,41],30,[470,468,41,444,11,18],"45203860",[472,473,33,212,474,41],"45201742",31,"maxglute",[151,476,44,444,152,41],32,[478,476,41,444,11,18],"45199476",[480,476,44,444,481,41],"45199958","krackers",[483,476,41,444,11,18],"45200373",[485,476,44,444,481,41],"45201767",[487,476,41,450,11,18],"45202391",[489,490,33,212,233,41],"45204360",33,[492,493,44,494,495,41],"45205941",34,"project\u002Fneutral\u002Fperformance","mathfailure",[123,493,41,494,11,18],[498,499,41,226,500,41],"45208769",35,"tclover",[502,499,41,226,302,41],"45209782",[504,505,41,226,506,41],"45203104",36,"teknopaul",[508,505,41,215,411,41],"45209600",[510,208,33,218,511,41],"45200833","NewUser49",[513,208,44,444,514,41],"45201462","FergusArgyll",[516,208,41,450,11,18],"45201731",[518,519,33,218,520,41],"45200163",38,"didip",[522,523,33,373,524,41],"45209058",39,"maurya_anand",[526,527,41,226,528,41],"45205670",40,"xarope",[530,527,41,226,11,18],"45205700",[532,527,41,226,11,18],"45205810",[534,527,33,373,528,41],"45209246",[536,527,41,450,11,18],"45212386",[538,539,18,540,541,41],"45203351",41,"project\u002Fcritical\u002Fnone","Koshkin",[543,539,44,259,544,41],"45203414","SkidanovAlex",[159,546,44,259,160,41],42,[548,546,41,259,11,18],"45202202",[550,551,33,212,552,41],"45206577",43,"rc_kas",[554,555,33,212,556,41],"45200527",44,"lxe",[558,559,33,218,560,41],"45201338",45,"OhMeadhbh",[562,563,41,226,564,41],"45204764",46,"pancsta",[566,567,33,212,568,41],"45206289",47,"igorhvr",[570,571,33,218,572,41],"45201630",48,"rochak",[574,575,44,247,576,41],"45202679",49,"QuiCasseRien",[578,575,44,247,579,41],"45207338","toomim",[581,31,41,226,582,41],"45202132","howyesno",[584,585,33,218,272,41],"45208901",51,[587,588,33,218,589,41],"45200977",52,"sreenathmenon",[591,588,41,373,11,18],"45203877",[593,594,33,218,595,41],"45200703",53,"dartharva",[597,594,41,373,11,18],"45203878",[599,600,33,373,601,41],"45181942",54,"Forgret",[603,600,41,450,11,18],"45182024",[192,605,44,247,193,41],55,[607,605,44,494,608,41],"45200947","vidarh",[],[611,616,621,625,630,634],{"id":612,"name":613,"points":614,"category":615},"45154609","Mitch Ivin portfolio (Windows XP recreation)",1032,"productivity",{"id":617,"name":618,"points":619,"category":620},"45157020","molecheck",429,"learning_science",{"id":622,"name":623,"points":624,"category":620},"45152940","KanaDojo",288,{"id":626,"name":627,"points":628,"category":629},"45196945","Small Transfers",198,"web_saas",{"id":631,"name":632,"points":633,"category":615},"45188116","Vicinae",181,{"id":635,"name":636,"points":637,"category":20},"45140921","CADAM",179,false,"v2",{"id":641,"name":5,"line":6,"ai":638,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":642,"top":18,"kw":643,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":644,"url":9,"mix":645,"praise":75,"objection":120,"sub":21},45181535,0.64,[24,25,26,27],"5503315455055555055115555555350555255554",[31,32,18,33],1793991129670]