Dear all, Here are (finally) the meetup notes.
TL;DR: EmacsConf, FSF40 hackathon, Org&GSoC, literate config pros/cons, LLM contributions to Org, LLM usefulness beyond generating code, installing Git version of Org mode, org-social, Org LaTeX export CJK, plans for Org 9.8 and Org 10.0, rx notation, digging across refactorings via magit-file-dispatch, Woof! status, whisper.el speech-to-text, office hours of WORG maintainer. - We started from me coming a bit late. Oh, well. This time of the year, time zone make it a bit harder for me to make back from work in time. Still, I do not want to make changes in the meetup schedules. Otherwise, people will be confused. - Anyway... we started from the latest Emacs News https://sachachua.com/blog/2025/11/2025-11-10-emacs-news/ - Sacha Chua reminded that EmacsConf is around the corner, with (as usual), a number of talk related to Org mode coming. - See https://emacsconf.org/2025/talks/ - I started scrolling through, but none of the talks became a topic-starter - Sacha also reminded about the FSF 40-year anniversary hackathon (Nov 21-23) - At the time of the meetup, a couple of people expressed interest participating, so I shared some links to make them connect easier https://old.reddit.com/r/orgmode/comments/1olysbt/ann_contribute_to_org_mode_during_fsf40_hackathon/nnl35oa/ - By the time of me writing this, the hackathon ended - The Org mode participated with one task: https://orgmode.org/worg/fsf40-hackathon-org.html - That was pretty exciting (the team working on Org mode's task got a prize), but I am getting away from what has happened during the meetup, so let's move on - Morgan asked about previous hackathons - I do not know about hackathons, but Org mode previously participated in similar event - Google Summer of Code - There were several projects that are described in now-archived WORG pages https://git.sr.ht/~bzg/worg/tree/master/item/archive/gsoc2012 - Unlike short-term hackathon Google Summer of Code is, well..., summer of code - AFAIK, the projects did get substantial progress, but none yielded final working code that got widely used. Alas. - Matthias asked about my literate Emacs configuration - It is public, available at https://github.com/yantar92/emacs-config/blob/master/config.org - System config at https://github.com/yantar92/emacs-config/blob/master/system-config.org - Christian noticed my old opening of the config with "I do not do much programming". It was indeed the case in the past, when I mostly did Elisp/bash/gnuplot. Not so much these days - I do a lot more programming than before. Still, I am not a professional developer. My background is materials science, although I was into algorithms at school and early during my bachelor. - Sacha: Python and shell scripts are totally programming - We then moved to discussing the benefits of literate configuration - Literate config is not really needed when the config is short and simple - But everyone knows about the horrors of Emacs bankruptcy, and well-documented literate config can save from it. (And not-so-well-documented may delay it.) - My config is a bit too complex (17+k lines) to keep track of everything in my head (and in comments), it is a must-have for me, with many notes being notes to future self. - Sacha Chua likes literate config as it can be published and can have handy hyperlinks. - Published config can be useful as people may give feedback that improves things - Ihor: Of course, that would only work if many people go and read that config :) - Ihor: The peak of popularity of literate configs was a few years ago (on Reddit), when people were publishing their own literate configs left and right. Not as much these days, with people who do find value, using it quietly. - Morgan asked whether contributions written by LLM can be accepted to Org mode - Currently not. Mostly because copyright status of such contributions is not clear - there is a legal risk that accepting such patches may endanger GPL license enforcement. - There was a long discussion on private GNU lists about this, and the only practical outcome is that we "wait and see" until ongoing lawsuits clear - There were many arguments for and against, but no agreement yet. - Also, see https://list.orgmode.org/87sed5dj2l.fsf@localhost/T/#m27be3d7533b961db1ad8bf14c85a32633cfd76ad - Morgan also asked about ethical stance on materials used to train LLMs - AFAIK, RMS indeed suggests that LLMs should be trained on free software and not proprietary - mostly to make sure that there is no risk of copyright infringement when LLM accidentally produces parts of training materials - *but it does not mean that LLMs should be ignored* - LLMs can be still extremely valuable to assist with code analysis, suggesting improvements (in words), identifying bugs, even trivial (and no so trivial) grammar checks. - I showcased how one can use gptel package in Emacs to load Org source code file into LLM context and do talk about possible code improvements -- not to suggest specific code, but to spell out problematic points and possible ideas - LLMs have pretty wide context windows these days Roughly in order of 0.5MB context for the latest models and roughly 128kB for newer local models. 0.5MB is enough to load many codebases in full (and there are tricks to load even larger, via tools). - I'd say that ignoring LLMs is a plain oversight these days. They can really save a lot of time when using appropriately. For example, they can very accurately suggest which function/library is more suitable for a given task, tailored for *your* task specifics, especially when enough context is provided. - Of course, mistakes do happen (some people just blindly trust LLMs, which is also a mistake), but the newest generation of agentic loops that involve search and linking to sources can be easily fact-checked while still achieving good time savings. - Rudy had an issue with git version of Org mode. He tried to use it, but kept getting built-in Org mode loaded - We debugged a bit, and things boiled down to setting up load-path early enough, so that nothing ever triggers Org loading before load-path is appropriately set (that would load built-in Org version) - Also, he used ~make native~, which is not really the correct way to get native-compiled Org into actual Emacs session. ~make native~ creates =.eln= files locally, inside Org folder, which is not what Emacs expects. That target is rather designed to diagnose native compilation warnings, not to install things (which is why Org mode manual simply suggests make compile) - Instead, you should rely on Emacs itself auto-compiling things and storing into =~/.emacs.d/eln-cache=. But need to make sure that ~load-path~ is set early to use the correct Org version. - There is ~comp-num-cpus~ to control the number of parallel native compilation threads. By default, Emacs uses half of CPUs. You can change it using ~native-comp-async-jobs-number~ - Morgan asked about org-social https://github.com/tanrax/org-social - org-social is a text-based social network based on pure .org files - with comments and reactions :) - org-social author recently reached out to Org mailing list proposing Org devs to have dedicated org-social feed https://yhetil.org/orgmode/[email protected]/ - I would not mind, as long as the process does not add maintenance burden (on top of existing Reddit/mastodon/email mess). In other words, I am after automation - say, auto-feeding org-social from https://tracker.orgmode.org/news.org (that is built from mailing list emails) - Pedro A. Aranda presented his work on Org LaTeX export improvements for non-English documents. His talk during EmacsConf: https://emacsconf.org/2025/talks/latex/ - He was specifically talking about supporting Chinese/CJK which requires specialized setup. We got suggestions from Chinese Emacs users https://emacs-china.org/t/help-implementing-better-out-of-the-box-xelatex-export-in-org/30405 - karthink asked about merging Org mode to upstream Emacs master - We merge on minor/major releases, not bugfix releases - So, nothing planned soon - But I do want to time the release no later than next Emacs version branch is frozen - karthink asked in the context of his work on merging the async LaTeX preview branch - My tentative thinking is to make a minor release soonish (Org 9.8), and leave the LaTeX preview and a number of other planned major changes to next release, which will tentatively be Org 10.0 - actual major release after many years - kathink commented that timeline for LaTeX preview is unclear, mostly because of his workload with gptel and the annoyingly difficult ob-latex changes. ob-latex is partially broken even on main, let alone adapting it to the new preview system - Also, I've got issues with Org parser on the latest Emacs master, need to investigate before thinking about the release. - Morgan commented that some issues might be caused by the code he contributed, but it is unlikely, or rather not directly 1. Parser problem is totally unrelated 2. Another problem I mentioned with clock tables handling is likely something to do with a known bug in ~org-element-cache-map~, which can now be trigerred more frequently as the newest clocktable code uses parser - Morgan asked about one of his patches, where he is using rx regexps - It was related to re-writing one of the regexp from pure string (with backslash hell) to (rx ...). What he was referring to is my comment that going full on better readability means that we may as well use more verbose rx constructs like ~(rx (optional ...))~ vs ~(rx (? ...))~. - See 35.3.3.1 Constructs in ‘rx’ regexps in Elisp manual - Context: https://list.orgmode.org/orgmode/871pm78hvp.fsf@localhost/ - Along the way, I was looking into history of some pieces of code in Org - I typically use ~M-x magit-file-dispatch~ (=C-x M-g=) with region active to get access to git history (similar, but built-in - ~vc-region-history~) - Sometimes, the git history spans beyond current file or region; for example, when code snippet got moved during refactoring - Then, in magit log buffer, I can hit <RET> on relevant commit, navigate to the old diff chunk and press <RET> there - it will resurrect the old version of the file the region was originally located. I can then repeat the process with =C-x M-g= right from that file, to dig even further into the history. - Morgan asked about the state of our bug tracker (it lists some closed bugs) - Well. It is waiting for a rewrite. See warning message in https://orgmode.org/worg/org-contribute.html#org3db9b95 - Bastien has been developing the bug tracker, but he has job changes and other personal matters that make it difficult for him to find spare time for extra dev work. Do remember that https://codeberg.org/bzg/woof/ is there, with all the source code available, and hackable. Patches will likely be welcome. - I am mostly ignoring that tracker, except making sure that announcements and requests for comments are passing through, as they are used by automated bots that re-distribute these announcements to rss/matrix chat - For bugs that are not properly closed, I can try using admin access to re-trigger closure, but I will probably do it closer to the next Org release as a part of spring-cleaning - Morgan asked whether bugs can be categorized vs. specific library - We discussed such feature in the past, but it is not implemented (Bastien has very limited time these days) - Nick Anderson asked about using whispter.el to input text into Org files by voice - He is particularly interested in real-time input - I have seen https://github.com/ggml-org/whisper.cpp?tab=readme-ov-file#real-time-audio-input-example - However, in my tests, that did not work very well, likely because it uses small chunks of voice as input, that loses broader context, making the quality of voice recognition degrade significantly - I personally use <record start> / <record stop> (M-x whisper-run) to explicitly mark beginning/end of recording. This works fairly well. - Someone also mentioned https://github.com/vndee/local-talking-llm to play back the text (opposite to whisper recognizing speech) - We then went a bit into tangent - gptel (LLM UI for Emacs) - My usage of whisper.cpp is combined with gptel - I have whisper output directly fed into gptel to clean up inaccuracies - I use @voice preset for this: https://github.com/yantar92/emacs-config/blob/master/config.org#voice-input - I recently got some errors with that preset, but karthink (the author or gptel) said that nothing changed in the APIs I am using to implement the preset. [2025-12-22 Mon] I narrowed this down to tools being enabled. Not sure what happened with tool calls, but disabling those fixed the problem. - Continuing the topic of agents (my voice prompt filter as a simple agent), Nick Anderson mentioned agent-shell - Karthink shared that he recently released https://github.com/karthink/gptel-agent - That reminded me of agent APIs out there like https://www.kaggle.com/code/kaggle5daysofai/day-1b-agent-architectures - Karthink said that gptel-agent is much simpler though: "Just tools + prompts for gptel, no connection to ACP or agent SDKs" - Morgan asked about "office hours" from our WORG maintainer (Christian Moe) https://list.orgmode.org/[email protected] - I am not sure if those office hours are something akin meetup. My reading of that message is rather "work on worg actively", but one can of course ask Christian. - Note that there is a number of online and offline Emacs-related meetups You can follow https://emacslife.com/calendar/ :chat: [17:04] yantar92 is now the presenter [17:05] [yantar92 : MODERATOR]: The latest Emacs News: https://sachachua.com/blog/2025/11/2025-11-10-emacs-news/ [17:09] [Sacha Chua : VIEWER]: There are a few Org-related talks at the upcoming EmacsConf (Dec 6-7) =) https://emacsconf.org/2025/talks/ Just letting people know in case that's not on their radar yet! [17:09] [Sacha Chua : VIEWER]: Also FSF Hackathon Nov 21-23 [17:09] [Morgan : VIEWER]: Has anyone expressed interest in working on org-mode stuff during the fsf hackathon? I would be interested in joining a team [17:12] [yantar92 : MODERATOR]: https://old.reddit.com/r/orgmode/comments/1olysbt/ann_contribute_to_org_mode_during_fsf40_hackathon/nnl35oa/ [17:13] [Morgan : VIEWER]: have there been previous hackathons like this? I'm curious about what kind of things people have done previously. I'm wondering what kind of project I should attempt [17:17] [Matthias : VIEWER]: do you publish your init.el? [17:18] [Morgan : VIEWER]: Are you asking about Ihor's init.el? That's here I think: https://github.com/yantar92/emacs-config [17:19] [Matthias : VIEWER]: thank you [17:20] [Christian : VIEWER]: I like how Ihor's config.org starts with "I do not do much programming" 😊 [17:22] [Sacha Chua : VIEWER]: Python and shell scripts are totally programming. [17:24] [Morgan : VIEWER]: I tried doing it once but I never really figured out what the benifit was over just having comments in the init.el [17:26] [Sacha Chua : VIEWER]: I like having easy hyperlinks and publishing. =) [17:26] [zororg : VIEWER]: audio got cut off? [17:26] [Nick Anderson : VIEWER]: Lost audio. [17:26] [Morgan : VIEWER]: oh that's awesome [17:26] [Sacha Chua : VIEWER]: Because then people can occasionally tell me about the totally built-in way to do something I wrote a 100+-line elisp function for. 😉 [17:27] [Morgan : VIEWER]: you're back [17:27] [Sacha Chua : VIEWER]: also I can hyperlink to parts of my config [17:28] [Sacha Chua : VIEWER]: but it's prettier when I post it 😉 [17:28] [Sacha Chua : VIEWER]: (... hah, no, I still just write mostly for myself 😉 ) [17:33] [Morgan : VIEWER]: does org-mode accept contributions written by LLM's? I haven't looked into LLM's like at all mostly because of intellectual property ownership questions [17:35] [Morgan : VIEWER]: if we had an LLM trained only on FSF software would that be ok? [17:36] [Morgan : VIEWER]: interesting. guess i will continue ignoring this software category [17:39] [Morgan : VIEWER]: did you load the whole source file into the LLM? they can accept input that large? [17:40] [Sacha Chua : VIEWER]: see y'all around! [17:40] [Rudy : VIEWER]: Q. Now that I contribute to Org, I have its Git version in my load path. It works, but I am unable to native-compile it. I tried `make native` and also native-compile everything I have on the load path with`(native-compile-async load-path t)`. Yet, `org-mode` is till an interpreted function, and damn slow (e.g. 1-file tangle with 80 lines takes 11 seconds and similar; quite unusable). [17:41] [Morgan : VIEWER]: thanks for showing me the LLM stuff. maybe I will look into it after all 😊 [17:50] Rudy is now the presenter, set by yantar92 [17:50] [zororg : VIEWER]: anyone of you tried org-social ? is it something interesting to use or adapt day to day? [17:51] [Morgan : VIEWER]: I am also interested in org-social and am waiting for other's opinions [17:51] yantar92 is now the presenter, set by yantar92 [17:52] [Morgan : VIEWER]: I wonder if we could make the news file in the repo into an org social file [17:53] [zororg : VIEWER]: https://yhetil.org/orgmode/[email protected]/ [17:53] [yantar92 : MODERATOR]: https://tracker.orgmode.org/news.org [17:58] [Pedro A. Aranda : VIEWER]: Hi, TZ woes. I just arrived... [17:59] [Morgan : VIEWER]: If the Sacha Chua blog didn't tell me the new time I would've been the same 😜. I detest DST. [18:04] [yantar92 : MODERATOR]: https://emacsconf.org/2025/talks/latex/ - this is who is talking [18:04] Pedro A. Aranda is now the presenter, set by yantar92 [18:10] [Rudy : VIEWER]: My Org is flying super-fast! I moved `(add-to-list 'load-path "~/org/src/org-mode/lisp")` to `~/.emacs.d/early-init.el` and Org is native-compiled. I also re-tried after `make clean`, and it works. (That said, Emacs keeps compiling more and more "as needed", which slows down the machine, so `(native-compile-async load-path t)` is a good idea to AOT-compile everything, I think.) Anyway, no need to share the screen. [18:10] [karthink : VIEWER]: Ihor, what is the approximate deadline for merging Org into master next? [18:11] yantar92 is now the presenter, set by yantar92 [18:11] [karthink : VIEWER]: I can prioritize merging org-latex-preview, I would really like to see it in the next version of Org [18:12] [yantar92 : MODERATOR]: comp-num-cpus [18:12] [visuwesh : VIEWER]: karthik: I've been meaning to mention this in the ML but I keep forgetting but have you had a chance to look at https://github.com/tecosaur/org-latex-preview-todos/issues/43? This still bites me [18:13] [Christian : VIEWER]: Audio lost? [18:14] [karthink : VIEWER]: I can hear you again [18:14] [Rudy : VIEWER]: BTW, `native-comp-async-jobs-number` is documented to support 0 (half the number of cores) or 1 (use one core). No way to specify, e.g. 4 cores, it seems. [18:14] [Rudy : VIEWER]: This message has been deleted by Rudy [18:14] [Rudy : VIEWER]: `comp-num-cpus` is computed from that. 😊 [18:15] [karthink : VIEWER]: Okay, the Org 10.0 plan sounds good [18:16] [karthink : VIEWER]: It's just that without a timeframe/deadlines I won't finish work on org-latex-preview, since the remaining few TODO items are quite painful to finish (like fixing ob-latex) [18:16] [Morgan : VIEWER]: 9.8 will be the first release with non-trivial changes from me 0.o. I'm hoping I didn't breaking anything in org-clock-sum 😐 [18:16] [Morgan : VIEWER]: lol [18:17] [Morgan : VIEWER]: oh dear [18:18] [Morgan : VIEWER]: i'm running master and haven't had any issues [18:19] [Rudy : VIEWER]: I spoke out too soon: the native compiled Org is the one in Emacs. Looks like adding to `load-path` in `.early-init.el` is not a good idea. [18:23] [Morgan : VIEWER]: Does Ihor uses inline tasks? I don't so org-clock-sum issue might be there [18:45] [karthink : VIEWER]: I missed the first hour, could you give me a summary of the discussion on LLM generated code in Org? [18:45] [karthink : VIEWER]: It was the "no need to ignore" bullet point that I didn't follow [18:46] [karthink : VIEWER]: Okay, thank you [18:46] [Morgan : VIEWER]: in a patch review you mentioned I should be doing (rx (optional "blah")) instead of (rx (? "blah")). Is there a resource for creating readable rx constructs? [18:47] [yantar92 : MODERATOR]: 35.3.3.1 Constructs in ‘rx’ regexps [18:47] [Rudy : VIEWER]: Okay, native compilation works. The key is to `make` again after making mistakes (e.g. compiling a wrong Org), for some reason. (Probably some timestamp checking.) [18:48] [Morgan : VIEWER]: completion function for tags matcher i think [18:49] [Morgan : VIEWER]: i'll look at the info page. the help page for rx seemed to show ? prominently [18:49] [yantar92 : MODERATOR]: https://list.orgmode.org/orgmode/871pm78hvp.fsf@localhost/ [18:51] [Morgan : VIEWER]: what are you using to see the age of code snippets? [18:51] [karthink : VIEWER]: vc-region-history also works [18:51] [karthink : VIEWER]: C-x v h [18:52] [Morgan : VIEWER]: oh that is awesome! I am a vc user. will have to check this out [18:53] [karthink : VIEWER]: How did you go to the old location from magit log [18:55] [karthink : VIEWER]: Oh, okay, thanks. I use this feature all the time from the status buffer [18:55] [karthink : VIEWER]: Didn't think to try it from the log [18:57] [Morgan : VIEWER]: woof bugs that are clearly closed but still show on the tracker. what's the deal with that? [18:58] [Morgan : VIEWER]: can you maually close them using the admin email? [18:59] [Morgan : VIEWER]: sometimes it would be fun to look at all bugs that touch something in particular. like the clock stuff. so i was trying to use woof like that [19:00] [Morgan : VIEWER]: just doing the mailing list in chronilogically leaves me jumping around the repo quite a bit [19:01] [Rudy : VIEWER]: I have to bounce, having a lecture in -1 minute. 😊 Thank you! [19:02] [Nick Anderson : VIEWER]: I use whisper.el occasionally, curious if anyone has anything working more real time. oh now i do find an emacs-whisper-live but i guess that's using some remote llm [19:03] [Nick Anderson : VIEWER]: whisper.el takes a whole recording chunk and then does speech to text [19:04] [Morgan : VIEWER]: it's fine. it would just be kinda fun to see everything. at the end of the day the difference between me going through everything chronologically and in a nice order would be minimal [19:04] [Nick Anderson : VIEWER]: but if i am rambling it wont output text until i end the whisper-run [19:05] [yantar92 : MODERATOR]: https://github.com/ggml-org/whisper.cpp?tab=readme-ov-file#real-time-audio-input-example [19:06] [Nick Anderson : VIEWER]: makes sense i guess. [19:07] [karthink : VIEWER]: Does this usually work? [19:07] [Nick Anderson : VIEWER]: just a hope that there was something great i was missing. [19:08] [Nick Anderson : VIEWER]: i had come across faster-whisper before too [19:09] [Nick Anderson : VIEWER]: yeah doable, just not done yet. [19:09] [yantar92 : MODERATOR]: https://github.com/vndee/local-talking-llm [19:09] [Morgan : VIEWER]: Is the first project on this page woof? I think someone forgot to link the actual project: https://www.fsf.org/events/fsf40-hackathon [19:10] [karthink : VIEWER]: What are you using for voice transcription, BTW? I remember seeing your @voice preset before but forgot [19:11] [karthink : VIEWER]: No changes in the gptel presets or responses API in the last few months [19:12] [karthink : VIEWER]: so it may be a bug [19:12] [karthink : VIEWER]: Yeah, no change in the API since then [19:12] [karthink : VIEWER]: Anyway, this is a cool idea [19:14] [Nick Anderson : VIEWER]: Oh yeah is anyone playing with agent-shell? [19:14] [karthink : VIEWER]: I recently released https://github.com/karthink/gptel-agent [19:14] [Nick Anderson : VIEWER]: OH must see [19:14] [karthink : VIEWER]: (Just tools + prompts for gptel, no connection to ACP or agent SDKs) [19:15] [Nick Anderson : VIEWER]: Looks interesting [19:15] [Nick Anderson : VIEWER]: thank you karthink [19:17] [yantar92 : MODERATOR]: https://www.kaggle.com/code/kaggle5daysofai/day-1b-agent-architectures [19:18] [Morgan : VIEWER]: One of these I'll look into worg stuff. On the mailing list I saw there was plans to have a weekly office hour for worg. Did that ever come to fruition? [19:18] [Morgan : VIEWER]: https://list.orgmode.org/[email protected] [19:18] [Nick Anderson : VIEWER]: org-mode and llms, still looking for the local KB panecea [19:18] [Morgan : VIEWER]: last line [19:19] [Morgan : VIEWER]: audio dropped right as you found it 😜 [19:21] [Morgan : VIEWER]: I was just curious about more opertunities to meet up with people really [19:21] [Nick Anderson : VIEWER]: there is emacs atx and other meetups [19:21] [yantar92 : MODERATOR]: https://emacslife.com/calendar/ [19:22] [Morgan : VIEWER]: thanks 😊 will look into [19:23] [karthink : VIEWER]: Thanks for the meetup [19:23] [Nick Anderson : VIEWER]: Thansk for doing it :end: -- Ihor Radchenko // yantar92, Org mode maintainer, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>
