[{"data":1,"prerenderedAt":512},["ShallowReactive",2],{"project-49902382":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":44,"post_text":47,"what":48,"said":80,"maker_in_thread":233,"shape":246,"grid":250,"attempts":471,"same_week":476,"maker_shows":46,"maker_hidden":504,"reader_version":505,"card":506},"49902382","Ledge.sh","Runnable Markdown Notes","title","Show HN: Ledge.sh – Runnable Markdown Notes","https:\u002F\u002Fledge.sh","ledge.sh","dancablam",1790725294,2026,205,88,280,4366,7,"notable","dev_tools","runnable markdown notebook","desktop_app",[24,25,26,27,28],"runnable markdown","markdown notebook","shell commands","literate programming","runbooks","mixed",0.343,{"positive":32,"neutral":33,"mixed":34,"critical":35},18,11,1,4,34,{"idea":38,"performance":40,"docs":43},{"positive":39,"critical":35},12,{"positive":41,"critical":42},2,0,{"positive":34,"critical":42},[45,42,42,42,45,45,45,45,42,45,42,46,45,42,42,42,42,46,45,34,45,42,45,45,46,42,45,45,42,45,46,45,34,46,46,45,45,42,46,41],5,3,"Hi HN,\n\nLedge is a Markdown notebook that runs shell commands, code, SQL, etc from inside your own notes.\n\nI built Ledge because I spend much of my day copy\u002Fpasting commands from my notes into the terminal. I was inspired by how much cmux helped me organize my terminals - but there was still a split brain between my notes and frequently run commands. I've been daily-driving it for the past few weeks and use it for deploys, API calls, smoke tests, etc.\n\nLedge runs your real shell just like a terminal app and can be hosted locally or remotely over SSH using ledge-server. I've been building it si",{"problem":49,"audience":55,"pricing":59,"motivation":63,"time_to_build":67,"stack":68,"openness":77,"stage":78,"team_size":79},{"value":50,"source":51,"evidence":52},"Copy\u002Fpasting commands from notes into the terminal","maker",[53],{"id":54},"post",{"value":56,"source":51,"evidence":57},"Developers who run commands from their notes, such as deploys, API calls and smoke tests",[58],{"id":54},{"value":60,"source":51,"evidence":61},"Free",[62],{"id":54},{"value":64,"source":51,"evidence":65},"Spends much of the day copy\u002Fpasting commands from notes into the terminal and wanted notes and commands in one place",[66],{"id":54},null,[69,73],{"value":70,"source":51,"evidence":71},"Bun",[72],{"id":54},{"value":74,"source":51,"evidence":75},"Electrobun",[76],{"id":54},"open_source","launched","unknown",{"praise":81,"objections":107,"requests":144,"questions":176,"alternatives":191},[82,93,100],{"value":83,"source":84,"evidence":85},"Good fit for org-babel users who want markdown and mobile access","commenter",[86,90],{"id":87,"by":88,"text":89},"49911985","theCodeStig","As an Emacs user for over a decade I think this is brilliant, it solves my biggest gripes with org-babel which prevent me from using it in a team setting. Ledge is a lot like…",{"id":91,"by":11,"text":92},"49921921","I think it's mainly an issue of preference. Markdown is common these days and already exists in READMEs etc. I know it so I tend to prefer it. I also require the ability to…",{"value":94,"source":84,"evidence":95},"Mobile support is a useful differentiator",[96],{"id":97,"by":98,"text":99},"49912189","classictraffic","This is really cool, and I love the mobile support too! I’ll definitely be giving this a spin",{"value":101,"source":84,"evidence":102},"Better GUI performance than Atuin Desktop",[103],{"id":104,"by":105,"text":106},"49912304","KetoManx64","Woooow! I love the idea of having documentation that I can just run directly as I'm reading through it, that also has a nice GUI to it. There's a similar product called Atuin…",[108,115,122,137],{"value":109,"source":84,"evidence":110},"Keeping runbooks and executable docs up to date is hard",[111],{"id":112,"by":113,"text":114},"49914235","ellieh","(hi! I worked a lot on atuin desktop) we saw a bunch of issues with desktop, in no particular order 1. authoring runbooks is difficult, most people barely document their work let…",{"value":116,"source":84,"evidence":117},"Executable markdown code blocks are an anti-pattern for serious project work",[118],{"id":119,"by":120,"text":121},"49920124","Piraty","> I built Ledge because I spend much of my day copy\u002Fpasting commands from my notes into the terminal. I was inspired by how much cmux helped me organize my terminals - but there…",{"value":123,"source":84,"evidence":124},"Could be an Obsidian plugin or is similar to Jupyter",[125,129,133],{"id":126,"by":127,"text":128},"49919137","NamlchakKhandro","Obsidian can already do this",{"id":130,"by":131,"text":132},"49924451","haaz","I don't store commands in my notes so I'm not the target market but could this not simply be an Obsidian plugin?",{"id":134,"by":135,"text":136},"49919219","usrbinbash","Oh great, another Jupyter-esque project...",{"value":138,"source":84,"evidence":139},"Linux app was laggy for one commenter",[140],{"id":141,"by":142,"text":143},"49919989","nullbio","This is cool. I'll probably use this to store my commonly used prompts so I don't have to retype them all the time. For whatever reason I like being able to see all of their…",[145,155,162,169],{"value":146,"source":84,"evidence":147},"Add org-babel interop",[148,152],{"id":149,"by":150,"text":151},"49919547","mcptokensaver","add org-babel interop",{"id":153,"by":154,"text":151},"49914866","coursenumpls",{"value":156,"source":84,"evidence":157},"Notebook mode with run-all-above or below execution",[158],{"id":159,"by":160,"text":161},"49918674","theis_once","Interesting. This seems like a good alternative to Jupyter Notebooks. I get annoyed when working with them using agents. They avoid editing the file directly because there is too…",{"value":163,"source":84,"evidence":164},"Non-linear flows, conditionals and dependencies between blocks",[165],{"id":166,"by":167,"text":168},"49920006","IanCal","Nice, I'll have to give this a try. I like the concept, I know there have been some other things in the general area but often tied a bit more to data analysis. I am a big fan of…",{"value":170,"source":84,"evidence":171},"Shell completion and history integration in the editor",[172],{"id":173,"by":174,"text":175},"49911945","tetraodonpuffer","cool idea, do you have any plans to integrate command generation with the shell completion \u002F aliases \u002F functions? Say I have tons of muscle memory on using ctrl-r fzf to get…",[177,184],{"value":178,"source":84,"evidence":179},"How does this compare to Org-mode",[180],{"id":181,"by":182,"text":183},"49909139","rvdca","How does this compete to something like Org-mode?",{"value":185,"source":84,"evidence":186},"Could this be an Obsidian plugin",[187],{"id":188,"by":189,"text":190},"49925843","nashashmi","Can this be a plugin for Obsidian?",[192,204,208,219,226],{"value":193,"source":84,"evidence":194},"Atuin Desktop",[195,199,203],{"id":196,"by":197,"text":198},"49912570","drayfield","I went to look at Atuin Desktop to see what the crossover was with this product, and it's fascinating to see that the repo was archived the day this was posted here!…",{"id":200,"by":201,"text":202},"49912495","edude03","I feel like there has been a few takes on this (atuin desktop comes to mind[0] but apparently it's not a going concern anymore?) why hasn't it caught on? 0:…",{"id":104,"by":105,"text":106},{"value":205,"source":84,"evidence":206},"Org-babel",[207],{"id":87,"by":88,"text":89},{"value":209,"source":84,"evidence":210},"Jupyter",[211,215],{"id":212,"by":213,"text":214},"49905427","wakaru44","Years ago I just used Jupyter notebooks with a bash (or many others) backend to have a similar thing.",{"id":216,"by":217,"text":218},"49919556","rarisma","so a jupiter notebook?",{"value":220,"source":84,"evidence":221},"Runme",[222],{"id":223,"by":224,"text":225},"49922120","akavel","I was recently researching apps like this for the usecase of writing devops\u002Ftech-support \"playbooks\", and also (related) \"runnable readmes\". Among many approaches and attempts I…",{"value":227,"source":84,"evidence":228},"xc",[229],{"id":230,"by":231,"text":232},"49918206","20after4","This is pretty cool. I've been interested in runnable code in markdown for a long time. It's a kind of \"literate programming¹\" which I've always thought was one of Knuth's best…",{"comments":234,"answered":235,"key":236},20,6,[237,240,243],{"id":238,"text":239},"49921577","Thanks! I'm looking for ways to extend Ledge further. Math \u002F Science capabilities could be cool (although I'll probably need a contributor that knows those needs to help out)",{"id":241,"text":242},"49912622","Woah. I have no affiliation with Atuin so a coincidence I'm sure but really weird.",{"id":244,"text":245},"49921811","Awesome feedback! For code in the markdown it's just simple blocks like ```sh, ```python, etc. So your README example should mostly work. Regarding flows \u002F conditionals - Right…",{"commenters":247,"max_depth":18,"maker_replies":234,"first_comment_mins":248,"lifespan_hours":249},56,444,50,[251,255,258,261,263,264,265,268,271,274,275,276,279,282,285,286,289,292,296,297,299,302,304,308,311,314,317,319,322,323,326,329,333,335,337,340,343,345,347,348,350,354,357,359,361,364,366,368,372,374,377,379,381,384,388,391,395,399,403,407,410,412,416,418,420,422,426,428,430,432,434,437,441,444,447,450,452,455,458,460,463,465,467,469],[252,42,45,253,254,42],"49918799","project\u002Fpositive\u002Fidea","mfld",[256,42,42,257,167,42],"49919930","other\u002Fneutral\u002Fnone",[259,42,42,257,260,42],"49925971","genxy",[238,42,42,262,11,34],"maker\u002Fneutral\u002Fidea",[196,34,42,257,197,42],[241,34,42,257,11,34],[266,34,42,257,267,42],"49913333","RationPhantoms",[269,34,42,257,270,42],"49920149","jamietanna",[272,41,42,257,273,42],"49920497","pratikdeoghare",[166,46,45,253,167,42],[244,46,42,262,11,34],[277,35,45,253,278,42],"49911906","TheGoodBarn",[280,35,42,281,11,34],"49912058","maker\u002Fneutral\u002Fnone",[283,45,45,253,284,42],"49913383","olexsmir",[87,235,45,253,88,42],[287,235,42,288,11,34],"49912046","maker\u002Fpositive\u002Fnone",[290,235,42,257,291,42],"49912462","imglorp",[293,235,42,294,295,42],"49919822","commenter\u002Fneutral\u002Fnone","mijoharas",[91,235,42,294,11,34],[298,235,45,253,88,42],"49922402",[300,18,42,257,301,42],"49906143","baranguneysel",[303,18,42,294,11,34],"49906926",[305,306,42,257,307,42],"49922344",8,"ArvidSu",[141,309,46,310,142,42],9,"project\u002Fmixed\u002Fperformance",[312,309,42,313,11,34],"49922129","maker\u002Fneutral\u002Fperformance",[315,309,45,316,142,42],"49929089","project\u002Fpositive\u002Fperformance",[200,318,42,257,201,42],10,[320,318,42,257,321,42],"49914073","junehwi",[112,318,42,257,113,42],[324,318,42,325,321,42],"49914343","other\u002Fneutral\u002Fidea",[327,318,42,257,328,42],"49919056","cyan_indigo",[330,318,42,331,332,42],"49920246","other\u002Fneutral\u002Fprivacy","skinfaxi",[334,318,42,331,328,42],"49925577",[336,318,42,262,11,34],"49914476",[338,318,42,325,339,42],"49921628","rancar2",[341,318,42,257,342,42],"49919947","frumiousirc",[223,33,46,344,224,42],"project\u002Fneutral\u002Fidea",[346,33,42,281,11,34],"49922304",[104,39,45,316,105,42],[349,39,42,281,11,34],"49912387",[351,352,46,344,353,42],"49918042",13,"pavo-etc",[119,355,34,356,120,42],14,"project\u002Fcritical\u002Fidea",[358,355,42,262,11,34],"49921636",[159,360,45,253,160,42],15,[362,360,42,257,363,42],"49919041","jdranczewski",[230,365,42,257,231,42],16,[367,365,42,257,231,42],"49918231",[369,370,45,253,371,42],"49918344",17,"trwhite",[373,370,42,281,11,34],"49922027",[375,32,45,253,376,42],"49912435","dannyw",[173,378,46,344,174,42],19,[380,378,42,281,11,34],"49912100",[382,234,42,257,383,42],"49920339","amdivia",[385,386,42,257,387,42],"49919562",21,"rohitpaulk",[97,389,45,390,98,42],22,"project\u002Fpositive\u002Fnone",[392,393,42,257,394,42],"49923218",23,"cckolon",[396,397,42,257,398,42],"49911951",24,"melito",[400,401,45,253,402,42],"49918580",25,"DylanMerigaud",[404,405,42,257,406,42],"49917916",26,"Gabrys1",[408,405,42,409,11,34],"49917964","project\u002Fneutral\u002Fnone",[130,411,46,344,131,42],27,[413,414,45,390,415,42],"49919555",28,"lightningspirit",[417,414,42,288,11,34],"49922032",[181,419,46,344,182,42],29,[421,419,42,344,11,34],"49910117",[423,424,45,253,425,42],"49919528",30,"robowo",[188,427,46,344,189,42],31,[126,429,34,356,127,42],32,[431,429,42,294,142,42],"49919980",[212,433,46,344,213,42],33,[435,433,42,436,11,34],"49906914","project\u002Fneutral\u002Fperformance",[438,433,46,439,440,42],"49911784","project\u002Fneutral\u002Fdocs","bpshaver",[442,433,42,443,11,34],"49911856","maker\u002Fneutral\u002Fdocs",[445,433,45,446,440,42],"49911973","project\u002Fpositive\u002Fdocs",[448,433,46,439,449,42],"49914207","rpdillon",[451,433,42,443,11,34],"49914573",[453,433,45,253,454,42],"49915640","funkaster",[456,433,42,294,457,42],"49911870","skrtskrt",[459,433,42,294,440,42],"49911937",[461,36,45,390,462,42],"49920711","Andromeda_1050",[216,464,34,356,217,42],35,[149,466,46,344,150,42],36,[153,468,46,344,154,42],37,[134,470,34,356,135,42],38,[472,475],{"id":473,"t":474,"points":34,"comments":42},"49815777",1790169963,{"id":4,"t":12,"points":14,"comments":15},[477,481,485,490,494,499],{"id":478,"name":479,"points":480,"category":20},"49833867","Whiteboard (YC W26)",424,{"id":482,"name":483,"points":484,"category":20},"49858513","Reladraw",415,{"id":486,"name":487,"points":488,"category":489},"49898778","Real-time Solar System (space.bl2.net)",408,"creative",{"id":491,"name":492,"points":493,"category":489},"49869574","Lofi Cities",320,{"id":495,"name":496,"points":497,"category":498},"49845172","Jev Plays Pokémon",282,"ai",{"id":500,"name":501,"points":502,"category":503},"49837006","Koi.rest",228,"consumer_social",false,"v2",{"id":507,"name":5,"line":6,"ai":504,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":508,"top":18,"kw":509,"maker":11,"domain":10,"tier":19,"attempts":41,"strip":510,"url":9,"mix":511,"praise":83,"objection":109,"sub":21},49902382,0.34,[24,25,26,27,28],"5000555505035000035150553055053513355032",[32,33,34,35],1793991168192]