Maxime Rivest ๐Ÿง™โ€โ™‚๏ธ๐Ÿฆ™๐Ÿง Profile picture
Easy LLM context for all! โœจpip install attachments Inspired by: ggplot2, DSPy, claudette, dplyr, OpenWebUI! Follow for: API design, AI, and Data ๐ŸCC๐Ÿ“œ๐Ÿ›  maker
Jul 31 โ€ข 6 tweets โ€ข 4 min read
Today, I woke up and I thought:

Wouldn't it be nice if I could use an llm for autocomplete instead of small dumb copilot/cursor type models?

Speed + Quality of Kimi-K2 on Groq makes it possible!

So, in 1 hour, I vibe coded a vscode extension, just before starting my day at work. Here is how ๐Ÿงต

ps: I only took about ~5 prompts. 1. For the first prompt, I opened a fresh conversation in with all 4: o3-pro, gemini 2.5-pro, opus 4 extended thinking and grok 4-heavy.

the prompt was:

I want to be able to press a keyboarb shortcut in vscode and the whole content of my current code (plus the other opened tab), plus instructions to a open ai end point would be sent to them and the ai would automcomplete and add code for the 'section'. the ai will decide what section its confident to predict how should we do it?Image
Jul 14 โ€ข 4 tweets โ€ข 2 min read
I just released the first version of Attachments CLI ๐Ÿ–‡๏ธ!

$ uv tool install attachments

$ attachments ~/my_repo/ --clipboard --glob '**/*.py'

Attachments is a Python library (and cli!) with a simple mission: to be your universal LLM funnel.

path -> clipboard

in 1 line Image This line below gets me all the .ts files and their content that are found in the attjsplay directory AND a tree of the directory.

att ~/Projects/maximumplay/src/attjsplay/ --clipboard --glob '*.ts' --mode structure --files Image
Jul 13 โ€ข 6 tweets โ€ข 2 min read
I needed to understand exactly what DSPy was sending to the LLMs on my behalf before I could trust it.

If you are like me, just run adapter.format yourself (the default is ChatAdapter) and you will see exactly what is happening. If you do not like the result, implement your own. DSPy is modular and fully supports that.

See the thread for how it renders.Image So the ChatAdapter would do that: Image