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.
I think it might be 'e' for 'emacs' (there's precedent: eglot, eldoc, eshell, erc, emms) combined with 'ifrit', since "efrit" is a much less common spelling.
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.)
Looks like efrit requires an Anthropic API Key, or at least that is what the README says, while gptel works with several different remote or local backends?
Off topic but without going RTFM, is there a guide that goes through setting up emacs 'with the modern way'? I have done it before but in a mish-mash way where I want something that tells how to go from configuring comp-speed, elpaca, eglot, auto treesitter etc
I somewhat recently settled on using use-package and straight — I highly recommend this approach. You can get pretty far using what comes with emacs and adding a bit more.
You can see how I do it in my emacs config[1] but it's a little bit special with meow[2] for a colemak keyboard. There's a youtube channel that I've skimmed[3] that helped me modernize my config by relying more on emacs' basic features.
Modern Emacs has pretty good defaults. Still, to get a much better quality of life, one usually has to manually install magit, treemacs, yasnippet, company-mode, ace-window, vertico + orderless (or similar), relevant programming language modes, and language servers for them.
One way is to start with bedrock https://git.sr.ht/~ashton314/emacs-bedrock
You will understand your config. Packages like elpaca and auto treesitter, just follow their readme's.
Or if you don't feel like learning the details, go with doom.
When I was using emacs I did it just using the internal stuff except for avy. You can get very far without extensions, though you may need lsp mode if you do frontend work.
Indeed you can get quite far with only the built-in modes. One pain point though is the lack of many major modes, for example there’s no built-in markdown-mode, json-mode, julia-mode, or typst-mode, to mention a few.
I recently did try to run Emacs without any packages for a while. To my surprise, AUCTeX was not one of the packages I missed, the built-in latex-mode works well. I did miss CDLaTeX though.
What is the modern way? Emacs is self documented like vim. Vim has the :help command, emacs have the Control + h prefix (or <f1> for an overview). You can start with a minimal config like Emacs Bedrock or Prelude, and then learn about those options first.
But the manual is very well written and worth the read. Emacs has its own culture, and the sooner you learn the conventions, the smoother your path will be.
Pretty sure they mean something that at least involves use-package, vertico/consult/etc. or equivalent, company or corfu, project.el or projectile, and magit.
> You can start with a minimal config like Emacs Bedrock or Prelude, and then learn about those options first.
Prelude seems nice but I wouldn’t call it minimal unless you’re comparing to Doom and Spacemacs.
But, I cannot seem to get past this error when I run claude-code-ide: "Symbol’s function definition is void: project-root" I know this is defined in project.el, but claude has been surprisingly unhelpful at fixing this issue.
I'm feeling a bit frustrated by the state of emacs packages lately. I've used emacs for 30 years and it feels like things are getting worse.
I'm sorry it's not working. I've used emacs for almost 40 years and I'm definitely contributing to it being worse, by uploading efrit in its current state. But people were asking me for it. Damned if you do and all that.
I'm more than happy to work with you to get it working, with the caveat that it actually kind of sucks right now. It's no Claude Code. But I am quickly evolving it in that direction.
This is turn 4. Focus on any remaining tasks that haven't been completed yet. Don't repeat work that was already done in previous turns.
Assistant: I notice from the context that we're in a directory that might be related to a xxx project. Let me try to find and open the yyyy.ts file.
[Result: Error: Unknown tool 'resolve_path']
Yeah it really kind of sucks right now, it's more of a proof of concept.
I'm working on evolving it into something that's not so transactional -- it will work more like claude code. Didn't realize it was going to hit the front page today. I'll poke at it this weekend and send an update.
My guess is that you're not in a project when you're opening claude? Easiest way for it to detect a project would be having a file or dired buffer open in something managed by git.
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
It's terrible at multi-step tasks right now. I'm evolving it to work more like claude code.
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.
More precisely, as I understand it, “genie" is an anglicization of its Arabic equivalent, “jinn"; Efrit is a specific kind of jinn.
https://www.etymonline.com/word/genie
https://en.wikipedia.org/wiki/Genius_(mythology)
(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
You can see how I do it in my emacs config[1] but it's a little bit special with meow[2] for a colemak keyboard. There's a youtube channel that I've skimmed[3] that helped me modernize my config by relying more on emacs' basic features.
[1] https://github.com/green7ea/dotfiles/tree/master/.emacs.d [2] https://github.com/meow-edit/meow [3] https://www.youtube.com/c/SystemCrafters
Elisp is a programming language that supports many ways to do things so there is lots of ways people do things.
Trying to make emacs into VS Code in 2025 is as stupid as trying to make emacs into eclipse in 2005 or notepad in 1985.
Or if you don't feel like learning the details, go with doom.
I recently did try to run Emacs without any packages for a while. To my surprise, AUCTeX was not one of the packages I missed, the built-in latex-mode works well. I did miss CDLaTeX though.
But the manual is very well written and worth the read. Emacs has its own culture, and the sooner you learn the conventions, the smoother your path will be.
Pretty sure they mean something that at least involves use-package, vertico/consult/etc. or equivalent, company or corfu, project.el or projectile, and magit.
> You can start with a minimal config like Emacs Bedrock or Prelude, and then learn about those options first.
Prelude seems nice but I wouldn’t call it minimal unless you’re comparing to Doom and Spacemacs.
But, I cannot seem to get past this error when I run claude-code-ide: "Symbol’s function definition is void: project-root" I know this is defined in project.el, but claude has been surprisingly unhelpful at fixing this issue.
I'm feeling a bit frustrated by the state of emacs packages lately. I've used emacs for 30 years and it feels like things are getting worse.
I'm more than happy to work with you to get it working, with the caveat that it actually kind of sucks right now. It's no Claude Code. But I am quickly evolving it in that direction.
I'm working on evolving it into something that's not so transactional -- it will work more like claude code. Didn't realize it was going to hit the front page today. I'll poke at it this weekend and send an update.