Soluzioni informatiche per l'impresa

my-codex-el

my-codex mappa delle possibilità

`my-codex.el` è un pacchetto Emacs per integrare moderni coding agent basati sull’intelligenza artificiale direttamente nell’ambiente di sviluppo.

Nato inizialmente come interfaccia per OpenAI Codex CLI, il progetto si è progressivamente evoluto in uno strumento più generale per lavorare con agenti AI da Emacs. Attualmente supporta OpenAI Codex e Google Antigravity CLI come agenti di prima classe ed è progettato per poter essere esteso con ulteriori profili.

L’idea di fondo è rimasta invariata: Emacs continua ad essere il centro dell’attività di sviluppo. Il programmatore mantiene il controllo del codice, degli strumenti e delle modifiche, mentre l’agente AI opera al suo fianco come collaboratore specializzato.

Il layout tipico mantiene il codice sorgente sulla sinistra e il terminale interattivo dell’agente sulla destra, utilizzando vterm oppure Eat. Le sessioni sono associate ai singoli progetti, in modo da mantenere separati contesti ed attività differenti.

Un agente che conosce il contesto

Una delle funzioni principali di `my-codex.el` è rendere semplice fornire all’agente il contesto realmente necessario, evitando continui copia e incolla. Direttamente da Emacs è possibile sottoporre all’agente:

  • regioni di codice o interi file;
  • funzioni e simboli;
  • errori di compilazione e diagnostica Flymake / Flycheck;
  • modifiche Git, complete oppure limitate ad uno specifico file;
  • struttura e informazioni essenziali del progetto;
  • file di istruzioni come `AGENTS.md`, `CODEX.md` e analoghi documenti specifici del progetto.

Il pacchetto può inoltre chiedere all’agente di analizzare il codice, spiegare un problema, preparare un piano di refactoring a basso rischio oppure verificare la copertura dei test individuando parti dell’implementazione che meritano ulteriore attenzione.

Dalla conversazione al ciclo di sviluppo

L’integrazione non si limita alla possibilità di porre domande all’AI.

`my-codex.el` collega l’agente alle normali attività di sviluppo e permette, fra l’altro, di:

  • esaminare le modifiche Git e confrontare file con `HEAD`;
  • generare e revisionare messaggi di commit;
  • eseguire il comando di build del progetto;
  • creare bozze di issue GitHub a partire dal lavoro svolto;
  • consultare le issue aperte senza abbandonare Emacs;
  • riassumere una sessione in un documento Markdown;
  • esportare la trascrizione di una sessione;
  • reinserire nel codice il testo prodotto dall’agente;
  • seguire direttamente riferimenti a file, righe di codice e URL presenti nelle risposte.

Anche i documenti possono diventare parte del workflow: un file Markdown, Org o di testo può essere utilizzato come specifica di un’attività, sottoposto all’agente per revisione, trasformato in un piano di implementazione oppure analizzato per individuarne le questioni ancora aperte.

Più agenti e più sessioni

Ogni progetto può avere sessioni differenti, comprese sessioni con nome, ed è possibile lavorare con agenti diversi mantenendo separati i relativi contesti.

Le sessioni possono essere avviate in modalità read-only, quando l’agente deve limitarsi ad analizzare e suggerire, oppure workspace-write, quando gli viene esplicitamente consentito di modificare il progetto.

Una dashboard permette di controllare le sessioni attive e quelle terminate, il progetto e il branch Git associati, lo stato del repository, l’attività svolta e una stima dei token inviati attraverso gli strumenti di `my-codex.el`.

Quando una conversazione diventa troppo lunga è inoltre possibile compattarne il contesto oppure effettuare un handoff: l’agente prepara un riepilogo essenziale del lavoro e questo viene utilizzato per iniziare una nuova sessione più focalizzata.

Controllo del contesto e dei costi

L’utilizzo di un LLM ha un costo anche in termini di contesto e token. Per questo `my-codex.el` considera la quantità di informazioni inviate all’agente come una parte esplicita del workflow.

Il pacchetto limita la dimensione delle descrizioni automatiche del progetto, può fare riferimento a porzioni di file attraverso nome e intervallo di righe invece di copiarne inutilmente l’intero contenuto, avverte quando un prompt diventa particolarmente grande e tiene traccia di una stima dei token trasmessi tramite i propri comandi.

L’obiettivo è fornire all’agente il contesto utile, non semplicemente più contesto possibile.

Configurazione e diagnostica

Una procedura guidata individua gli agenti e i backend terminale disponibili e permette di completare rapidamente la configurazione iniziale.

Il comando doctor verifica inoltre i principali elementi dell’ambiente (versione di Emacs, agenti installati, terminale, Git ed altre integrazioni), rendendo più semplice individuare eventuali problemi di configurazione.

La filosofia

`my-codex.el` non nasce per sostituire l’ambiente di sviluppo con una chat e neppure per delegare indiscriminatamente la programmazione ad un modello linguistico.

L’obiettivo è piuttosto integrare l’AI negli strumenti che il programmatore utilizza già, rendendola facilmente accessibile quando può essere utile e mantenendo al tempo stesso visibili il codice, il contesto e le conseguenze delle modifiche.

L’agente può analizzare, proporre, modificare e automatizzare. La responsabilità delle decisioni rimane al programmatore.

Per noi, almeno al momento, è questo il tipo di sviluppo assistito dall’intelligenza artificiale che ha più senso: potente e profondamente integrato nel normale ciclo di lavoro, ma rispettoso della concentrazione, del mestiere e del giudizio umano.

`my-codex.el` è software open source distribuito con licenza Mozilla Public License 2.0.