[{"data":1,"prerenderedAt":308},["ShallowReactive",2],{"project-9843268":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":35,"aspects":36,"strip":44,"post_text":45,"what":46,"said":78,"maker_in_thread":191,"shape":198,"grid":201,"attempts":270,"same_week":271,"maker_shows":33,"maker_hidden":300,"reader_version":301,"card":302},"9843268","ttystudio","a terminal-to-gif recorder without the headaches","title","Show HN: ttystudio – a terminal-to-gif recorder without the headaches","https:\u002F\u002Fgithub.com\u002Fchjj\u002Fttystudio","github.com","chjj",1436235003,2015,118,29,204,2565,8,"notable","dev_tools","terminal recorder","cli",[21,24,25,26,27],"gif","apng","terminal to gif","screencast","mixed",-0.107,{"positive":31,"neutral":32,"mixed":33,"critical":34},3,4,2,5,14,{"idea":37,"execution":39,"performance":40,"design":42,"docs":43},{"positive":33,"critical":38},0,{"positive":38,"critical":31},{"positive":38,"critical":41},1,{"positive":41,"critical":38},{"positive":38,"critical":41},[38,34,38,38,38,38,38,31,38,41,31,31,38,34,38,31,38,38,41,38,38,38,31,38,41,34,31,41,41],null,{"problem":47,"audience":45,"pricing":45,"motivation":54,"time_to_build":45,"stack":58,"openness":77,"stage":77,"team_size":77},{"value":48,"source":49,"evidence":50},"Recording terminal sessions as GIFs without glitchy frames or clunky tooling like ttyrec and ttygif","maker",[51],{"id":52,"by":11,"text":53},"9843340","I'm sorry you feel that way. This project came out of my own need I guess. I had too much trouble with ttyrec+ttygif: glitchy\u002Fcorrupt gif frames (bad dispose ops maybe?), clunky…",{"value":55,"source":49,"evidence":56},"Maker's own need after trouble with ttyrec and ttygif",[57],{"id":52,"by":11,"text":53},[59,71],{"value":60,"source":61,"evidence":62},"Node.js","commenter",[63,67],{"id":64,"by":65,"text":66},"9843319","mgraczyk","I like that there is no required GUI, but needing to install the node.js dependency sounds like a \"headache\" to me.",{"id":68,"by":69,"text":70},"9844190","shomyo","> without the headaches > nodejs",{"value":72,"source":49,"evidence":73},"blessed terminal cell buffer",[74],{"id":75,"by":11,"text":76},"9844198","I agree with the gif optimization. It's on the todo list. The most important part is actually the x and y offsets for each frame, like you said: the damage to the image. It…","unknown",{"praise":79,"objections":91,"requests":115,"questions":134,"alternatives":153},[80,84],{"value":81,"source":61,"evidence":82},"Single command recording and output is convenient",[83],{"id":52,"by":11,"text":53},{"value":85,"source":61,"evidence":86},"Uses built-in terminal emulation rather than screen recording",[87],{"id":88,"by":89,"text":90},"9843606","geofft","I'm intrigued that this uses a built-in terminal emulation library instead of doing screen recording, which makes this different from most (all?) other solutions I've seen. Nifty!",[92,101,108],{"value":93,"source":61,"evidence":94},"Requires Node.js, a heavy dependency",[95,96,97],{"id":64,"by":65,"text":66},{"id":68,"by":69,"text":70},{"id":98,"by":99,"text":100},"9844844","laurent123456","Not to mention that it requires node.js, which is quite a massive dependency.",{"value":102,"source":61,"evidence":103},"Output GIFs are large and unoptimized",[104],{"id":105,"by":106,"text":107},"9844105","leni536","Really nice feature for the cli. The generated images could get a lot of more optimized though. The example.gif file ~2.5 MiB large, uses 100 ms frames and each frame updates the…",{"value":109,"source":61,"evidence":110},"README claims no dependencies but package has third-party ones",[111],{"id":112,"by":113,"text":114},"9844758","milkworsethan","So it says that there are no external dependencies yet the package has third party dependencies, what's the deal?",[116,120,127],{"value":117,"source":61,"evidence":118},"Better GIF optimization such as damage-based frame offsets",[119],{"id":105,"by":106,"text":107},{"value":121,"source":61,"evidence":122},"Support for zsh completion dialogs",[123],{"id":124,"by":125,"text":126},"9844348","lorenzfx","Can it properly record zsh's completion dialogs? I recently spent two hours trying to record a 5 seconds terminal sequence [0] and all terminal recording tools I tried failed. I…",{"value":128,"source":61,"evidence":129},"Single statically compiled binary",[130],{"id":131,"by":132,"text":133},"9843388","andrewchambers","I agree, I tend to prefer when utilities like this are single statically compiled program like Go produces.",[135,142,146],{"value":136,"source":61,"evidence":137},"Does it handle ncurses UIs, tmux and vim",[138],{"id":139,"by":140,"text":141},"9843425","jamestomasino","I see the note about rendering with a custom font. Will that screw up recording for those with special fonts being used (powerline for example)? How does it play with ncurses…",{"value":143,"source":61,"evidence":144},"Does it work with powerline fonts",[145],{"id":139,"by":140,"text":141},{"value":147,"source":61,"evidence":148},"Average output size per minute",[149],{"id":150,"by":151,"text":152},"9844674","fsiefken","What's the average size per minute with ttystudio? I'd think that x264 or mp4 compression would be more efficient, but I am not sure if that would be more practical and doable…",[154,165,180,187],{"value":155,"source":61,"evidence":156},"Byzanz",[157,161],{"id":158,"by":159,"text":160},"9843348","zachlatta","Every time I see posts about recording GIFs, I'm always surprised Byzanz (https:\u002F\u002Fgithub.com\u002FGNOME\u002Fbyzanz) isn't more well known. Here's a GIF I just recorded with it:…",{"id":162,"by":163,"text":164},"9844479","tenfingers","Byzanz uses the gstreamer framework, which is massive. It does a video capture which is encoded on the fly to gif (or other formats). But I upvoted you anyway, because byzanz…",{"value":166,"source":61,"evidence":167},"asciinema",[168,172,176],{"id":169,"by":170,"text":171},"9843445","akkartik","What are people's experiences with asciinema? It's always seemed mindblowing to me to be able to search a screencast, and to be able to pause and scroll around.",{"id":173,"by":174,"text":175},"9843489","fundamental","I remember trying it out a few months back and it simply didn't work for what I was trying to record. It looked like everything was fine for normal shell operations, but it…",{"id":177,"by":178,"text":179},"9843502","grhmc","I love it. I use it to record and share work demos on a very regular basis. Works great for vim and more.",{"value":181,"source":61,"evidence":182},"LICEcap",[183],{"id":184,"by":185,"text":186},"9843450","auston","I use LICEcap: http:\u002F\u002Fwww.cockos.com\u002Flicecap\u002F",{"value":188,"source":49,"evidence":189},"ttyrec and ttygif",[190],{"id":52,"by":11,"text":53},{"comments":31,"answered":41,"key":192},[193,194,195],{"id":52,"text":53},{"id":75,"text":76},{"id":196,"text":197},"9843438","The default font (terminus) supports 891 glyphs. However, ttystudio can support any font you find in .bdf format. The readme explains how to use them. Terminus works fine with…",{"commenters":199,"max_depth":32,"maker_replies":31,"first_comment_mins":200,"lifespan_hours":35},24,21,[202,204,208,211,214,215,218,221,223,224,226,229,231,232,235,238,240,242,244,246,248,251,255,257,259,261,264,266,269],[158,38,38,203,159,38],"other\u002Fneutral\u002Fnone",[205,38,34,206,207,38],"9843650","project\u002Fpositive\u002Fidea","hobarrera",[209,38,38,210,159,38],"9843743","commenter\u002Fneutral\u002Fnone",[212,38,38,210,213,38],"9843799","stevekemp",[162,38,38,203,163,38],[216,41,38,203,217,38],"9843943","jbermudes",[219,41,38,203,220,38],"9844277","garblegarble",[64,33,31,222,65,38],"project\u002Fmixed\u002Fexecution",[52,33,38,210,11,41],[131,33,41,225,132,38],"project\u002Fcritical\u002Fexecution",[227,33,31,228,207,38],"9843656","project\u002Fneutral\u002Fexecution",[124,31,31,230,125,38],"project\u002Fneutral\u002Fperformance",[184,32,38,203,185,38],[233,32,34,206,234,38],"9845648","squeaky-clean",[236,32,38,203,237,38],"9846336","sogen",[105,34,31,239,106,38],"project\u002Fmixed\u002Fperformance",[75,34,38,241,11,41],"maker\u002Fneutral\u002Fperformance",[169,243,38,203,170,38],6,[173,243,41,245,174,38],"project\u002Fcritical\u002Fperformance",[177,243,38,247,178,38],"other\u002Fpositive\u002Fnone",[249,243,38,250,207,38],"9843658","other\u002Fcritical\u002Fnone",[252,253,38,203,254,38],"9843997",7,"bhaak",[139,18,31,256,140,38],"project\u002Fneutral\u002Fdesign",[196,18,38,258,11,41],"maker\u002Fneutral\u002Fdesign",[68,260,41,225,69,38],9,[88,262,34,263,89,38],10,"project\u002Fpositive\u002Fdesign",[150,265,31,230,151,38],11,[112,267,41,268,113,38],12,"project\u002Fcritical\u002Fdocs",[98,267,41,225,99,38],[],[272,277,281,286,291,295],{"id":273,"name":274,"points":275,"category":276},"9838955","“Who is hiring",546,"productivity",{"id":278,"name":279,"points":280,"category":20},"9839712","YouTube Filesystem",185,{"id":282,"name":283,"points":284,"category":285},"9828962","Trigrad",175,"languages",{"id":287,"name":288,"points":289,"category":290},"9830531","Silicon Valley Dictionary",158,"learning_science",{"id":292,"name":293,"points":294,"category":285},"9845763","node-rdpjs",140,{"id":296,"name":297,"points":298,"category":299},"9820521","Ironclad",105,"web_saas",false,"v2",{"id":303,"name":5,"line":6,"ai":300,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":304,"top":18,"kw":305,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":306,"url":9,"mix":307,"praise":81,"objection":93,"sub":21},9843268,-0.11,[21,24,25,26,27],"05000003013305030010003015311",[31,32,33,34],1793990927297]