Spiega documentation

Article: emacs

What spiega is about

emacs

emacs

Emacs is the main software I use since 2002. You never feel you understand it enough and every time I tried something different I really couldn't perceive the advantage and went back to emacs. I even asked claude/cursor what would be the best tool for writing software with interactive sessions, organize your workflow as per org mode, coordinate the agents and act on the system at the same time and the bot responded: keep using emacs. LLMs helped me to improve the way I use it and now it's hard to exit it since all the agents, programs and news are integrated here and the different outputs get piped together.

configuration

Emacs grows with you. IDEs have many configuration options but they don't give you the freedom to adapt to your workflow and many options are limited. Especially the UI doesn't let you create a really readable interface were you just focus on what information is needed.

.html and emacs

Emacs is the most versatile text editor, it has an overwhelming option of integration and configuration. It takes time to configure it but the productivity speed is unbeatable. I tried IDEs but I find the UI too confusing to concentrate and they force you to work in a single manner. Emacs is the best option for .html too:

export
many emacs packages export the files into blog posts and slides
babel
you can link system programs to the execution of code blocks
roam
in the background all the information you work on are linked together
integration
.html connects with all the tools like agenda, web-search, journal …
tools
emacs allows agent to use tools

More on emacs

emacs and LLMs

There are multiple configurations to include LLMs in emacs:

ellama
for reasoning and structuring the project and for code examples in any buffer
gptel
for the integration with mcp
gptel base
base package
mcp.el
start the hub
custom gptel tools
user defined tools
gptel-mcp
integration between the packages
mcp
for adding my own tools and external mcp

More on agent_call-emacs.

coding assistant

Language models without IDE capabilities have limited added value. We can in principle build a coding assistant within emacs but I prefer by now to use different coding assistant with different capabilities. My workflow:

simple tasks
and test every progress. Agents taking too many autonomous decisions are difficult to oversee
little interpretation
agents need to understand and wait for agreement

Well configured coding assistants don't need extreme performant models

pi agent
pi-coding-agent the one I'm currently use the most
aideremacs
aider too many interactions
opencode
opencode in emacs

More on agentic context

code REPL

Emacs has many code REPL features were you can send lines of code and test the execution and the data transformation. I mainly use REPL with:

python
I can access all the methods and help in the panel
IoT
I can open a serial terminal
nodejs
I can test promises too
R
visualize on the fly the results
octave
for more complex mathematical functions

bot review

The provided Emacs configuration file demonstrates a comprehensive setup tailored for efficient coding and development. The work encompasses various features that enhance productivity, code management, and collaboration within the software lifecycle.

Key Features:

  1. Customization and Personalization:
    • Themes: Uses the 'misterioso' theme with custom colors to improve visual comfort.
    • Font Settings: Adjustable font size through global shortcuts for better readability.
    • Transparency Control: Toggle transparency settings with `C-c l`.
  2. Package Management:
    • Extensive Package List: Includes packages like `gptel`, `eradio`, `ess-R-data-view`, and more, tailored for development needs.
    • Auto-Install and Update: Packages are managed using MELPA, ensuring up-to-date features and tools.
  3. Code Mode Enhancements:
    • Multiple Language Support: Extensive support for languages including R, Python, JavaScript, CSS, HTML, PHP, etc., with mode-specific functionalities like indentation and beautification.
    • Interactive Code Execution: Features like running code snippets directly from Emacs buffers for quick testing and prototyping.
  4. Development Tools:
    • Version Control Integration: Basic backup settings to prevent data loss.
    • Desktop Mode: Restores open buffers across sessions, enhancing productivity.
    • Shell Interactions: Enhanced shell modes for better integration with Node.js and Python.
  5. Project Management:
    • Projectile Integration: For managing projects efficiently, particularly useful with `platformio-mode`.
    • Keybindings for common project tasks like building, uploading, serial communication, and cleaning.
  6. AI and LLM Integration:
    • Ellama (formerly gptel) for AI-driven coding assistance, enabling features like code review, summarization, translation, and more.
    • Minuet for inline code suggestions using AI models.
  7. Spelling and Documentation:
    • Flyspell integration for on-the-fly spelling correction in text and markdown modes.
    • ESS (Emacs Speaks Statistics) for R development with enhanced interactivity.
  8. Custom Functions and Commands:
    • Various custom functions like `my-python-auto-run`, `toggle-transparency`, and more, tailored to specific workflows.
    • Keybindings for quick access to features like running Python code snippets or toggling transparency.

Usage and Importance:

  • Enhanced Productivity: Features like auto-completion, inline suggestions, and AI-driven assistance significantly reduce the time spent on repetitive tasks and improve overall coding efficiency.
  • Collaboration: Tools like `gptel` facilitate real-time collaboration with developers and stakeholders, enabling quick feedback and discussions.
  • Learning and Development: Comprehensive language support and documentation tools encourage continuous learning and skill development.
  • Error Prevention: Features like flyspell help catch spelling errors early in the coding process, reducing bugs.

Overall, this configuration represents a robust setup for modern software development using Emacs. It integrates various features that cater to different aspects of the software lifecycle, from initial planning and coding to deployment and documentation, making it an essential tool for developers seeking an efficient and flexible development environment.

Date: 2026-06-22 Mon 00:00

Author: sabeiro

Created: 2026-06-28 Sun 17:42

Validate