<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>notes from /dev/null - captee</title><link href="http://yummymelon.com/devnull/" rel="alternate"/><link href="http://yummymelon.com/devnull/feeds/tags/captee.atom.xml" rel="self"/><id>http://yummymelon.com/devnull/</id><updated>2025-04-28T05:00:00-07:00</updated><entry><title>Announcing Scrim - An Org Protocol Proxy for Emacs on macOS</title><link href="http://yummymelon.com/devnull/announcing-scrim--an-org-protocol-proxy-for-emacs-on-macos.html" rel="alternate"/><published>2025-04-28T05:00:00-07:00</published><updated>2025-04-28T05:00:00-07:00</updated><author><name>Charles Choi</name></author><id>tag:yummymelon.com,2025-04-28:/devnull/announcing-scrim--an-org-protocol-proxy-for-emacs-on-macos.html</id><summary type="html">&lt;p&gt;Announcing Scrim, an Org Protocol proxy for Emacs on macOS.&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;a href="http://yummymelon.com/scrim"&gt;&lt;img src="http://yummymelon.com/devnull/images/announcing-scrim/scrim_resize_128x.png"  /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://orgmode.org/"&gt;Org mode&lt;/a&gt; celebrates its ability to &lt;em&gt;export&lt;/em&gt; to a multitude of formats. However, lesser known is its ability to &lt;em&gt;import&lt;/em&gt; content. One of the ways to import into Org is through a custom URL scheme. This scheme is referred to as &lt;a href="https://orgmode.org/manual/Protocols.html"&gt;Org Protocol&lt;/a&gt; (scheme name: &lt;code&gt;org‑protocol://&lt;/code&gt;). The motivating idea for using a URL scheme was this: &lt;em&gt;any&lt;/em&gt; app outside of Emacs could construct and make an &lt;code&gt;org‑protocol://&lt;/code&gt; URL request without needing any security permissions.&lt;/p&gt;
&lt;p&gt;Regrettably, the original implementation of Org Protocol presumed that &lt;code&gt;emacsclient&lt;/code&gt; would do the work of making the actual URL request to Emacs. This thinking did not consider the notion that &lt;a href="https://en.wikipedia.org/wiki/Sandbox_(computer_security)"&gt;app sandboxing&lt;/a&gt; would become widespread practice, preventing other programs from calling &lt;code&gt;emacsclient&lt;/code&gt;. So it is with recent releases of macOS: its default policy is to only allow an app to access programs within its prescribed sandbox.&lt;/p&gt;
&lt;p&gt;That said, I ❤️ Org Protocol, so much so that I provided support for it in a utility called &lt;a href="http://yummymelon.com/captee"&gt;Captee&lt;/a&gt; that lets you share links and text clippings from the macOS Share Menu. I wanted Org Protocol to work on macOS, but for years it was broken due to its dependence on &lt;code&gt;emacsclient&lt;/code&gt;. The only workaround was to use the &lt;a href="https://bitbucket.org/mituharu/emacs-mac/src/master/"&gt;Mitsuharu Yamamoto fork of Emacs&lt;/a&gt; which implemented native support for &lt;code&gt;org-protocol://&lt;/code&gt; URL requests. For a number of years, the Yamamoto fork was my daily driver. Unfortunately though, it seems to have succumbed to bit-rot as it has not kept track with recent releases of GNU Emacs (in particular 30.1). I made the switch over to GNU Emacs 30.1, but in doing so I had to give up Org Protocol support.&lt;/p&gt;
&lt;p&gt;I missed Org Protocol, so I decided to do something about it. I wrote an app.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scrim&lt;/strong&gt; is a macOS utility to act as a proxy to take an Org Protocol request from any app and relay that to Emacs. In effect, &lt;strong&gt;Scrim&lt;/strong&gt; is a native macOS client for Emacs server.&lt;/p&gt;
&lt;p&gt;Learn more about &lt;a href="http://yummymelon.com/scrim"&gt;Scrim at its website&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scrim&lt;/strong&gt; is &lt;a href="https://apps.apple.com/us/app/scrim/id6744040981"&gt;now available for purchase on the Mac App Store&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As &lt;strong&gt;Scrim&lt;/strong&gt; and &lt;strong&gt;Captee&lt;/strong&gt; compliment each other so well, you can get them both at a &lt;a href="https://itunes.apple.com/us/app-bundle/id1810494622?mt=12"&gt;discounted price&lt;/a&gt;.&lt;/p&gt;
&lt;h1&gt;Links&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://yummymelon.com/scrim"&gt;Scrim Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://yummymelon.com/captee"&gt;Captee Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://itunes.apple.com/us/app-bundle/id1810494622?mt=12"&gt;Scrim + Captee App Bundle&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="misc"/><category term="emacs"/><category term="org mode"/><category term="scrim"/><category term="captee"/></entry><entry><title>Making an App, Looking for Beta Testers</title><link href="http://yummymelon.com/devnull/making-an-app-looking-for-beta-testers.html" rel="alternate"/><published>2025-04-14T14:50:00-07:00</published><updated>2025-04-14T14:50:00-07:00</updated><author><name>Charles Choi</name></author><id>tag:yummymelon.com,2025-04-14:/devnull/making-an-app-looking-for-beta-testers.html</id><summary type="html">&lt;p&gt;Scrim is a macOS utility I've written to act as a proxy for Org Protocol requests. It is in BETA test and I’m looking for testers.&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img src='http://yummymelon.com/devnull/images/looking-for-scrim-beta-testers/scrim-original_resize_64x.png' /&gt;&lt;/p&gt;
&lt;p&gt;Nearly two years back I wrote a utility called &lt;a href="http://yummymelon.com/captee/"&gt;Captee&lt;/a&gt; that uses the native macOS Share Menu ( &lt;img src='http://yummymelon.com/devnull/images/looking-for-scrim-beta-testers/share-icon_resize_x64.png' width='14pt' style='margin-bottom: -3pt;' /&gt; ) to share a link or text clipping in either Markdown or &lt;a href="https://orgmode.org/"&gt;Org&lt;/a&gt; format. The idea was that any macOS app that supported the Share Menu could take advantage of this. Among the features that Captee supported was the ability to share content via &lt;a href="https://orgmode.org/manual/Protocols.html"&gt;Org Protocol&lt;/a&gt;, a custom URL scheme devised to import content into Emacs.&lt;/p&gt;
&lt;p&gt;However, for Org Protocol to work, it required that there be a way to transport the &lt;code&gt;org-protocol://&lt;/code&gt; URL request to Emacs on macOS. Org Protocol’s original implementation presumed that &lt;code&gt;emacsclient&lt;/code&gt; would do the lifting here, where the sharing app would be able to call &lt;code&gt;emacsclient&lt;/code&gt; with the &lt;code&gt;org-protocol//&lt;/code&gt; request as its argument. This was however a regrettable design decision made over a decade ago as recent versions of macOS now have a default sandbox policy that prevents an app from calling an executable like &lt;code&gt;emacsclient&lt;/code&gt; outside of its sandbox.&lt;/p&gt;
&lt;p&gt;The &lt;a href="https://bitbucket.org/mituharu/emacs-mac/src/master/"&gt;Mitsuharu Yamamoto fork of Emacs&lt;/a&gt; got around this restriction by supporting the Org Protocol custom URL scheme natively, where it would directly accept the URL request, bypassing &lt;code&gt;emacsclient&lt;/code&gt;. Unfortunately for users of GNU FSF-published Emacs, Org Protocol was viable only if &lt;code&gt;emacsclient&lt;/code&gt; was enabled, typically by relaxing macOS security permissions.&lt;/p&gt;
&lt;p&gt;To address the above for GNU FSF-published Emacs, I set out to build a proxy utility that would accept the &lt;code&gt;org-protocol://&lt;/code&gt; URL request and transport it to Emacs in a way that conforms to macOS security policies. In effect, I made a macOS client app for Emacs server.&lt;/p&gt;
&lt;p&gt;This app is named &lt;strong&gt;Scrim&lt;/strong&gt; and is now in BETA test. I’m looking for testers, especially for those of you who already have Captee. If you’re interested and &lt;em&gt;willing&lt;/em&gt; to provide feedback, &lt;a href="https://testflight.apple.com/join/Ssm1P3Su"&gt;please add yourself to the Beta test group on TestFlight&lt;/a&gt;, an Apple tool for distributing code-signed apps. At current I’m most interested in the following feedback:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sanity check - Does the app work as advertised?&lt;/li&gt;
&lt;li&gt;Were the instructions to setup Emacs server easy to follow? If not, then what was missing?&lt;/li&gt;
&lt;li&gt;Are you a user of Captee?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you do sign yourself up for this, please provide answers to the above via the mail feedback in the &lt;strong&gt;Scrim&lt;/strong&gt; app.&lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;p&gt;&lt;br/&gt;
&lt;a href='https://testflight.apple.com/join/Ssm1P3Su'&gt;&lt;b&gt;YES, I WANT TO BETA TEST SCRIM&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;</content><category term="misc"/><category term="emacs"/><category term="org mode"/><category term="scrim"/><category term="captee"/></entry><entry><title>Captee 1.1.0 update now available on the App Store</title><link href="http://yummymelon.com/devnull/captee-1.1.0-update-now-available-on-the-app-store.html" rel="alternate"/><published>2023-05-22T13:55:00-07:00</published><updated>2023-05-22T13:55:00-07:00</updated><author><name>Charles Choi</name></author><id>tag:yummymelon.com,2023-05-22:/devnull/captee-1.1.0-update-now-available-on-the-app-store.html</id><summary type="html">&lt;p&gt;Captee v1.1.0 is a major release. Export of formatted text to Markdown and Org is now supported!&lt;/p&gt;</summary><content type="html">&lt;p&gt;There's a big update to &lt;strong&gt;Captee&lt;/strong&gt; (v1.1.0) now available on the &lt;a href="https://apps.apple.com/us/app/captee/id6446053750"&gt;App Store&lt;/a&gt;. This is a major release for the app, with significant improvements to its user interface and support for &lt;em&gt;converting formatted macOS text&lt;/em&gt; to Markdown and Org markup. &lt;/p&gt;
&lt;p&gt;If this is your first time hearing about it, hello and welcome! &lt;strong&gt;Captee&lt;/strong&gt; is an app that makes marking up a link (both URL and title) to Markdown or Org a one-step operation straight from the macOS Share menu. Results are stored in the system clipboard for pasting into your favorite editor. &lt;/p&gt;
&lt;p&gt;Learn more about &lt;strong&gt;Captee&lt;/strong&gt; at &lt;a href="http://yummymelon.com/captee"&gt;http://yummymelon.com/captee&lt;/a&gt;.&lt;/p&gt;</content><category term="misc"/><category term="Captee"/><category term="dev"/><category term="software"/><category term="mobile"/></entry><entry><title>Captee available on the Mac App Store</title><link href="http://yummymelon.com/devnull/captee-available-on-the-mac-app-store.html" rel="alternate"/><published>2023-04-10T15:04:00-07:00</published><updated>2023-04-10T15:04:00-07:00</updated><author><name>Charles Choi</name></author><id>tag:yummymelon.com,2023-04-10:/devnull/captee-available-on-the-mac-app-store.html</id><summary type="html">&lt;p&gt;Captee available on the Mac App Store. Go get it.&lt;/p&gt;</summary><content type="html">&lt;p&gt;At long last, &lt;strong&gt;Captee&lt;/strong&gt; is available on the &lt;a href="https://apps.apple.com/us/app/captee/id6446053750" title="Buy Captee on the App Store"&gt;Mac App Store&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Learn more about it at &lt;a href="http://yummymelon.com/captee"&gt;http://yummymelon.com/captee&lt;/a&gt;&lt;/p&gt;</content><category term="misc"/><category term="Captee"/><category term="software"/><category term="macOS"/><category term="org mode"/><category term="markdown"/><category term="emacs"/></entry><entry><title>Introducing Captee alpha, looking for testers</title><link href="http://yummymelon.com/devnull/introducing-captee-alpha-looking-for-testers.html" rel="alternate"/><published>2023-03-10T14:31:00-08:00</published><updated>2023-03-10T14:31:00-08:00</updated><author><name>Charles Choi</name></author><id>tag:yummymelon.com,2023-03-10:/devnull/introducing-captee-alpha-looking-for-testers.html</id><summary type="html">&lt;p&gt;Introducing Captee, a macOS utility app to share links and content via the macOS Share menu. It's in alpha now, but I'm looking for testers.&lt;/p&gt;</summary><content type="html">&lt;p&gt;This past February, I started building a &lt;strong&gt;macOS&lt;/strong&gt; app to help me work with &lt;a href="https://orgmode.org/"&gt;Org mode for Emacs&lt;/a&gt;  It lets you share links and content from another app (typically &lt;strong&gt;Safari&lt;/strong&gt;) via the &lt;strong&gt;macOS&lt;/strong&gt; &lt;em&gt;Share&lt;/em&gt; menu and format it in &lt;strong&gt;Org&lt;/strong&gt; markup. It can also support &lt;a href="https://daringfireball.net/projects/markdown/syntax#link"&gt;Markdown links&lt;/a&gt; so you can work with other editors too. The app is called &lt;strong&gt;Captee&lt;/strong&gt; and here&amp;rsquo;s a video that demonstrates it at work:&lt;/p&gt;
&lt;div class="video-container"&gt;&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/OTtfaxxqnWY" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;

&lt;p&gt;Note that &lt;strong&gt;Captee&lt;/strong&gt; is very much in an alpha/proof-of-concept/bleeding-edge state of polish right now. You&amp;rsquo;ll get the best results for &lt;strong&gt;Captee&lt;/strong&gt; if you use the macOS Yamamoto Mitsuharu port of &lt;strong&gt;Emacs&lt;/strong&gt; (&lt;a href="https://ports.macports.org/port/emacs-mac-app/"&gt;MacPorts&lt;/a&gt;, &lt;a href="https://github.com/railwaycat/homebrew-emacsmacport"&gt;Homebrew&lt;/a&gt;). It supports &lt;a href="https://orgmode.org/manual/Protocols.html"&gt;Org Protocol&lt;/a&gt; out of the box, otherwise you will have to use the system clipboard to share content.&lt;/p&gt;
&lt;p&gt;To capture selected text via &lt;code&gt;org-protocol&lt;/code&gt; you&amp;rsquo;ll need to define a capture template on the &lt;strong&gt;Emacs&lt;/strong&gt; side &lt;em&gt;first&lt;/em&gt; before you use &lt;strong&gt;Captee&lt;/strong&gt;. Here&amp;rsquo;s an example capture template that uses the placeholders described in the Org &lt;a href="https://orgmode.org/manual/The-capture-protocol.html"&gt;capture protocol&lt;/a&gt;.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;table class="highlighttable"&gt;&lt;tr&gt;&lt;td class="linenos"&gt;&lt;div class="linenodiv"&gt;&lt;pre&gt;&lt;span class="normal"&gt;1&lt;/span&gt;
&lt;span class="normal"&gt;2&lt;/span&gt;
&lt;span class="normal"&gt;3&lt;/span&gt;
&lt;span class="normal"&gt;4&lt;/span&gt;
&lt;span class="normal"&gt;5&lt;/span&gt;
&lt;span class="normal"&gt;6&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;div&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;setq&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;org-capture-templates&lt;/span&gt;
&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="o"&gt;&amp;#39;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;a&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Captee Capture&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;entry&lt;/span&gt;
&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;file+headline&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;~/org/captee.org&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Captee Captures&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;* %:description\\n%:annotation\\n%i\n%?&amp;quot;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;:empty-lines&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Okay with all that said, I&amp;rsquo;m looking for testers. If you&amp;rsquo;re interested, you can get an alpha build of &lt;strong&gt;Captee&lt;/strong&gt; via this &lt;a href="https://testflight.apple.com/join/Jq0GuEv8"&gt;TestFlight link&lt;/a&gt;. Please provide feedback via the TestFlight app. Also, I highly recommend you do a deep-read of the release notes before installing or using &lt;strong&gt;Captee&lt;/strong&gt;.&lt;/p&gt;</content><category term="misc"/><category term="emacs"/><category term="dev"/><category term="software"/><category term="macOS"/><category term="org mode"/><category term="captee"/></entry></feed>