← all repositories
rksm/org-ai

Emacs finally gets an AI assistant that stays in its lane

An org-mode minor mode that treats LLMs like just another source block—generate text, images, or speech without leaving your buffer.

org-ai
Velocity · 7d
+0.7
★ / day
Trend
steady
star history

What it does

org-ai is a minor mode that adds #+begin_ai...#+end_ai blocks to org-mode. You type a prompt, hit C-c C-c, and ChatGPT (or a local LLM via oobabooga) responds inline. Add :image and you get DALL-E or Stable Diffusion output stored in ~/org/org-ai-images/. It also handles speech input via Whisper and text-to-speech via espeak—because apparently Emacs users want to talk to their editor now.

The interesting bit

The clever part is inheritance: set system prompts, temperature, and model as org properties on a heading, and every AI block underneath picks them up. It’s org-mode’s outline structure repurposed as prompt engineering infrastructure.

Key highlights

  • Supports OpenAI, Azure, Perplexity, Anthropic/Claude, and local models via text-generation-webui
  • Image generation with DALL-E 3 or Stable Diffusion, including img2img via :image-ref
  • Speech input (Whisper/Siri dictation) and output (espeak/greader)
  • Global commands like org-ai-on-project for prompting across multiple files outside org-mode
  • Syntax highlighting inside AI blocks by appending a major mode: #+begin_ai markdown

Caveats

  • Speech setup is platform-specific and involves multiple external tools (Whisper, espeak, portaudio); the README warns macOS and Windows steps differ
  • Stable Diffusion requires running AUTOMATIC1111’s webui separately; local LLMs need conda environments and manual API server startup
  • The “free tier gets you pretty far” note about OpenAI is the author’s impression, not a guarantee

Verdict

Worth a look if you already live in org-mode and want AI woven into your note-taking workflow, not a separate app. Skip it if you want something that works out of the box without API keys, local servers, and speech toolchain wrangling.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.