ID
a3hj2syfmdrmc0crtdmvczsc6r
Status
Succeeded
Source
Web
Hardware
CPU (Small)
Total duration
Created
Webhook

Input

github_url
https://github.com/andreasjansson/greger.el
prompt
What's interesting about this repo compared to Cursor or Windsurf?

Output

Short list of things that make this repo stand out (vs. Cursor / Windsurf):

- Native Emacs-first design
  - The entire chat is an editable Emacs buffer (markdown-like), not a locked UI panel — you can edit assistant output, thinking blocks, tool calls, save chats as files and continue them.
  - Tree‑sitter grammar for the chat format: syntax/highlighting, folding, clickable citations/URLs, TAB-based expansion.

- Tooling as Emacs Lisp
  - Tools are ordinary Emacs Lisp functions you register; you can write and register arbitrary tools (file ops, ripgrep, shell, web read/search, etc.) and pass buffer/callback/metadata/streaming hooks.
  - Server tools (e.g., web_search) are modeled and registered too (JSON schema strings).

- Safe, auditable file editing workflow
  - File edits are done by explicit named tools (str-replace, replace-file, write-new-file, etc.) with checks (e.g., paren-balance for .el).
  - Greger stages/commits changes to git automatically (and can commit the chat file) so every agent edit has git provenance.

- Streaming + tool execution model
  - Assistant text is streamed incrementally; tool calls are recognized and executed (in parallel) with placeholders inserted and streaming/tool callbacks that fill results back into the buffer.
  - Terminal/control‑sequence processing so CLI progress bars and streaming outputs render sensibly in the buffer.

- Rich UI transformations
  - Tool inputs/results get syntax highlighting (creates a temp buffer with appropriate major-mode based on file path), unified-diff generation for str-replace, and “undiff” parsing back to original/new content.
  - Folding/invisibility of tags, citation folding, and clickable links all implemented with tree‑sitter + text properties.

- Claude & Anthropic features baked in
  - Built specifically for Claude models, uses prompt-caching/ephemeral cache-control, explicit "thinking" blocks (separable internal reasoning budget).
  - Uses curl-based streaming client with fine-grained content-block callbacks.

- Security / UX choices
  - Shell-command tool asks for permission unless a safe-command allowlist or allow-all flag is set; metadata carries safe-shell-commands.
  - Minimal external deps (only curl + common CLI tools) — Emacs-native instead of requiring a separate service.

- Extensibility & tests
  - Easy to add custom tools (three-step process) and many examples.
  - Large test suite and emphasis on correctness (parsing, diffing, tool plumbing).

In short: Greger is built as an Emacs-native, fully-text, tree‑sitter‑aware agent framework where tools are first‑class Emacs Lisp functions and every change is tracked and reviewable in git. That combination (editable chat-as-file, Emacs Lisp tool extensibility, tree‑sitter UI/diffing, git provenance, and streaming/tool plumbing) is the repo’s primary differentiator compared to web/IDE‑centric agents like Cursor or Windsurf.
Generated in