[HN Gopher] Efrit: A native elisp coding agent running in Emacs
       ___________________________________________________________________
        
       Efrit: A native elisp coding agent running in Emacs
        
       Author : simonpure
       Score  : 55 points
       Date   : 2025-08-08 19:20 UTC (3 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | cmrdporcupine wrote:
       | Neat. As a Claude Code plan user can I use this ? I've never
       | tried the API access method.
       | 
       | Claude is remarkably effective at writing elisp I surprisingly
       | found. I had it whip up a mode today for something today
       | (Notation3/N3 RDF triples) complete with etags support, etc. and
       | it just... did it.
        
       | Bilal_io wrote:
       | Clever name. For thos curious Efrit is Genie in Arabic and
       | possibly the same in neighboring languages such as Persian and
       | Turkish..
        
         | dragonwriter wrote:
         | > For thos curious Efrit is Genie in Arabi
         | 
         | More precisely, as I understand it, "genie" is an anglicization
         | of its Arabic equivalent, "jinn"; Efrit is a specific kind of
         | jinn.
        
           | kgwgk wrote:
           | Genie comes from Latin via French, it's not (just) a
           | transliteration.
           | 
           | https://www.etymonline.com/word/genie
           | 
           | https://en.wikipedia.org/wiki/Genius_(mythology)
        
       | foobarqux wrote:
       | I managed to get this working with gemini by using a proxy [1]
       | and the following config (I used quelpa)                   (use-
       | package efrit         :quelpa (efrit :fetcher git :repo
       | "steveyegge/efrit")         :init         (setq efrit-model
       | "gemini-2.5-pro")         ;; (setq efrit-api-url
       | "https://generativelanguage.googleapis.com/v1beta/opena
       | (setq efrit-api-url "http://127.0.0.1:8089/v1/messages")
       | :config (defun efrit--get-api-key () (key-from-file
       | "~/.keys/gemini.txt")) ; this isn't needed, it's set by the proxy
       | :ensure t)
       | 
       | I needed to remove the uvicorn version constraint when importing
       | the project to uv to get it to find a version solution.
       | 
       | Initially I thought you could send it directly to Gemini but
       | apparently you need to proxy and translate the responses.
       | 
       | [1] Seems sketchy, use at your risk:
       | https://github.com/coffeegrind123/gemini-for-claude-code
        
       | jwmcq wrote:
       | I wonder if this could be updated to use OpenRouter in a similar
       | way to Emigo[1] was aiming to do.
       | 
       | (I use the past tense, because Emigo has not been updated in a
       | quarter of a year, which seems as if it may as well be decades in
       | the timeline of this sort of stuff.)
       | 
       | [1] https://github.com/MatthewZMD/emigo
        
       ___________________________________________________________________
       (page generated 2025-08-08 23:00 UTC)