EN / RU / 🤖
← К эссе
· Эссе · 1 мин

Автоматизация с HammerSpoon и ChatGPT

Настоящим открытием курса от MIT "The Missing Semester of Your CS Education" про который я [писал](https://t.me/rvnikita_blog/1213) стал инструмент HammerSpoon. Основная идея в том, что это надстрой

Настоящим открытием курса от MIT "The Missing Semester of Your CS Education" про который я писал стал инструмент HammerSpoon.

Основная идея в том, что это надстройка над операционной системой которая позволяет писать небольшие скрипты и автоматизировать различные действия. Существует много уже готовых плагинов (например в 1 клик менять размеры и перемещать окна приложений по экранам).

Самый любимый скрипт который я сделал, занимает 22 строчки и по комбинации Cmd+Shift+Option+G берет скопированный текст, отправляет его в ChatGPT c запросом "поправь граматику" и подменяет его в буфере обмена, остается его вставить обратно. Это экономит какое-то нереальное количество времени каждый день и избавляет от необходимости копировать и вставлять текст туда-сюда из ChatGPT

```if OPENAI == "" then return end

hs.hotkey.bind({"cmd","shift","alt"},"G",function()
local txt = hs.pasteboard.getContents(); if not txt or txt=="" then return end
local hold = hs.alert.show("⏳ Fixing…",9999)
local body = hs.json.encode{
model="gpt-4o-mini",
messages={
{role="system",content="Fix grammar; return only text."},
{role="user",content=txt}
}
}
hs.http.asyncPost("https://api.openai.com/v1/chat/completions",body,
{["Content-Type"]="application/json",Authorization="Bearer "..OPENAI},
function(s,r)
hs.alert.closeSpecific(hold)
if s==200 then
hs.pasteboard.setContents(hs.json.decode(r).choices[1].message.content)
hs.alert.show("Clipboard updated")
else hs.alert.show("OpenAI error "..tostring(s)) end
end)
end)```

Автоматизация с HammerSpoon и ChatGPT — illustration