Big fan of your work with the LLM tool. I have a cool use for it that I wanted to share with you (on mac).
First, I created a quick action in Automator that recieves text. Then I put together this script with the help of ChaptGPT:
escaped_args=""
for arg in "$@"; do
escaped_arg=$(printf '%s\n' "$arg" | sed "s/'/'\\\\''/g")
escaped_args="$escaped_args '$escaped_arg'"
done
result=$(/Users/XXXX/Library/Python/3.9/bin/llm -m gpt-4 $escaped_args)
escapedResult=$(echo "$result" | sed 's/\\/\\\\/g' | sed 's/"/\\"/g' | awk '{printf "%s\\n", $0}' ORS='')
osascript -e "display dialog \"$escapedResult\""
Now I can highlight any text in any app and invoke `LLM` under the services menu, and get the llm output in a nice display dialog. I've even created a keyboard shortcut for it. It's a game changer for me. I use it to highlight terminal errors and perform impromptu searches from different contexts. I can even prompt LLM directly from any text editor or IDE using this method.1) Some safeguards re privacy and data ownership. Do you just send the file to the web? Do you run everything locally? 2) Can open interpreter be used with voice? So, what if I don't want to type but I want to dictate?
After so many years, Wayland is still such a mess...
It reads the clipboard (equal to the current selection) via wl-paste and sends a request to the Claude API via curl. Finally, it filters the response with jq (very crude) and displays it with notify-send. I have a second version of the script that sends the result via XMPP to Gajim because the answers can be quite long.
I think the experience should be similar to the one on MacOS.
#!/bin/bash
# Validate that the argument is an integer
if [[ ! $1 =~ ^[0-9]+$ ]]; then
echo "Please provide a valid integer as the argument."
exit 1
fi
# Make API call, parse and summarize the discussion
curl -s "https://hn.algolia.com/api/v1/items/$1" | \
jq -r 'recurse(.children[]) | .author + ": " + .text' | \
llm -m claude-3-opus -s 'Summarize the themes of the opinions expressed here.
For each theme, output a markdown header.
Include direct "quotations" (with author attribution) where appropriate.
You MUST quote directly from users when crediting them, with double quotes.
Fix HTML entities. Output markdown. Go long.'
Here's the result of running that against this 300+ comment thread: ./hn-summary.sh 39590666
Response: https://gist.github.com/simonw/37781de39fb5555f39b4157a8ad07...Considering Anthropic API keys seem to be free to create I wonder if this part could be automated too using a headless chrome browser. It would be one less annoyance and allow a proliferation of other software that could just be pipped or apt-gotten and "just work" but now there's this one annoying human step.
Bonus points if when usage is nearing API limits, it uses the GPU to mine a small amount of bitcoin and use that to pay for more API capacity 100% autonomously without user intervention. We're in the AI era after all, it's about time computers did things on their own.
https://gist.github.com/vladstudio/92efe283453f5f22d4606947b...
More on LLM: https://llm.datasette.io/