u/elijahcharles

▲ 97 r/emacs

Introducing graph-fa2 (browser free graph rendering)

graph-fa2 was originally developed to render force directed graphs in grove extra but now it's a generalised project that can be used for other use-cases. It gives you an org-roam-ui style experience directly in emacs using librsvg without a web browser.

To render a graph simply add a function to the click hook and create a function to turn your graph into a set of nodes and edges.

https://github.com/elij/graph-fa2

u/elijahcharles — 2 days ago
▲ 7 r/emacs

macher-agent updates (emacs native agent orchestration)

macher-agent is built on gptel (LLM/UI) and macher (context/VFS). It operates as a first class citizen within emacs and removes the friction of a terminal embedded within emacs.

It talks elisp (tools are elisp, rules/hooks are elisp etc.) and conversations are strictly buffers.

Further to this, multi file changes are passed through macher as unified diff/ediff/vdiff etc. and agents never directly interact with the workspace they are editing or running tools against.

Changes since last submission:

- SKILL file parsing

- strict isolation and optimisations to operate large numbers of sub agents in separate workspaces

- deterministic pipelines (emacs batch)

- thought injection

- conversation branch/rewind

and many others.

https://github.com/elij/macher-agent

u/elijahcharles — 13 days ago
▲ 119 r/emacs

Emacs SVG rendering in force directed graph sims revisited

Taking inspiration from u/misterchiply and his post on Emacs SVG Benchmark Reveals Gaming-Caliber Frame Rates I've taken another look at how fast we can render graphs with a force directed simulation in single threaded Emacs without using a web browser to do the heavy lifting.

Originally this was done by rendering a frame, yielding for 100ms and then doing the next frame. This added a huge delay between a graph change and the start of the render (this was cached so it was only the first time).

Moving this to rendering as much as possible in 50ms,, fixed point maths and some caching/culling we're able to get the an average of 1.31ms repulsion, 0.84ms attraction, 1.38ms integration and 0.42ms rendering to svg. Getting 13-23 frames per slice (50ms) on an M5 Pro.

It also now calculates frame rendering progress to start the playback early, so new graph are near instant.

Updated Grove Extra

u/elijahcharles — 17 days ago
▲ 11 r/emacs

As a heavy user of macher I've moved some helpers I use regularly into a single project incase there are others that might be interested. https://github.com/elij/macher-agent

It's basically gptel-agent but for those of us who like the macher workflow with the patch output rather than the CLI/MCP destructive file system workflow..

Basically it gives a few nice to haves -- a macher-agent-make-tool which is like gptel-make-tool but has access to the macher file context and does a few things to keep things async.

And a simple sub agent workflow using buffer outputs.

My goal is to hopefully get it into a position where it could be upstreamed directly into macher.

u/elijahcharles — 2 months ago