• Stars
    star
    226
  • Rank 176,514 (Top 4 %)
  • Language
    Python
  • Created almost 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Your voice-controlled Mac assistant

GPT Automator

App

Your voice-controlled Mac assistant. GPT Automator lets you perform tasks on your Mac using your voice. For example, opening applications, looking up restaurants, and synthesizing information.

Made by Luke Harries and Chidi Williams at the London EA Hackathon, February 2023.

GPT Automator demo

Requirements

  • FFmpeg

    # on Ubuntu or Debian
    sudo apt update && sudo apt install ffmpeg
    
    # on Arch Linux
    sudo pacman -S ffmpeg
    
    # on MacOS using Homebrew (https://brew.sh/)
    brew install ffmpeg
    
    # on Windows using Chocolatey (https://chocolatey.org/)
    choco install ffmpeg
    
    # on Windows using Scoop (https://scoop.sh/)
    scoop install ffmpeg

Instructions

  1. Install the dependencies from the requirements.txt or pyproject.toml files.
  2. Create a .env file from the .env.example file and fill in the OpenAI API key.
  3. Run python gui.py to run the GUI and click 'Record' to say your prompt. Alternatively, run python main.py [prompt] to run the CLI.

How it works

GPT Automator converts your audio input to text using OpenAI's Whisper. Then, it uses a LangChain Agent to choose a set of actions, including generating AppleScript (for desktop automation) and JavaScript (for browser automation) commands from your prompt using OpenAI's GPT-3 ("text-davinci-003"), and then executing the resulting script.

Example prompts

  • Find the result of a calculation. Prompt: "What is 2 + 2?" -> It will write AppleScript to open up a calculator and type in 5 * 5.
  • Find restaurants nearby. Prompt: "Find restaurants near me" -> It will open up Google search, read the text on the page, and say the best restaurants.
  • Play a game of chess. Prompt: "Play a game of chess" -> It will open up Chess.com and start clicking around.

Learn more

Checkout our blog posts for more information:

Disclaimer

This project executes code generated from natural language and may be susceptible to prompt injection and similar attacks. This work was made as a proof-of-concept and is not intended for production use.

More Repositories

1

buzz

Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAI's Whisper.
Python
11,500
star
2

github-stories

View stories on your GitHub dashboard
JavaScript
252
star
3

flatbson

Recursively flatten a Go struct using its BSON tags
Go
57
star
4

expression-evaluator

A math expression evaluator built with JavaScript
JavaScript
36
star
5

go-web-server-tips

Example project demonstrating tips for writing web servers in Go
Go
30
star
6

glox

Go implementation of the Lox programming language from Crafting Interpreters
Go
27
star
7

3d-orbit-simulation

3D simulation of the Earth orbiting the Sun
JavaScript
22
star
8

ayoayo

Implementation of Ayoayo
JavaScript
18
star
9

dsaw

Data Structures and Algorithms in the Wild
JavaScript
16
star
10

nunjucks-templating-starter

Generate and compile static HTML pages using Nunjucks with asset compilation and minification
JavaScript
14
star
11

sierpinski-hexagon

A simulation of a Sierpinski Hexagon made by plotting the centroids of equilateral triangles on the sides of a hexagon
JavaScript
11
star
12

3d-drum-machine

3D Drum machine using Three.js
JavaScript
10
star
13

wordle

Wordle clone with AI solver
JavaScript
9
star
14

jscheme

Scheme interpreter and REPL
JavaScript
9
star
15

chidiwilliams.com

My personal website
HTML
9
star
16

lox-playground

Lox playground
JavaScript
8
star
17

hynet-flex-tracker

Tracks data usage for MTN Hynet Flex
Go
7
star
18

covey

A tiny expression language to compare recursive descent and Pratt parsing
TypeScript
7
star
19

treasure-hunt-lisp

Common Lisp
5
star
20

datacomm-client

A virtual laboratory for simulating Digital Signal Processing.
JavaScript
5
star
21

loxjs

A TypeScript implementation of the tree-walking interpreter from Crafting Interpreters
TypeScript
4
star
22

advent-of-code

Advent of Code solutions
JavaScript
4
star
23

datacomm-lab

A collection of functions and classes for Digital Signal Processing
TypeScript
4
star
24

clox

Lox compiler
C
3
star
25

scripts

All the scripts
JavaScript
3
star
26

find-this-book

JavaScript
2
star
27

makemore

Jupyter Notebook
2
star
28

learn-rust

Rust
2
star
29

wolfstation-presentation

Wolfstation DSA Program 2022 — Tries
Jupyter Notebook
2
star
30

vue-datatable

Take Home Project for the BriteCore Frontend Developer position
Vue
1
star
31

learning-common-lisp

Common Lisp
1
star
32

mongodb-transactions-test

JavaScript
1
star
33

micrograd

h\t karpathy
Jupyter Notebook
1
star
34

twitter-followers

JavaScript
1
star
35

stackgrid

JavaScript
1
star
36

conway-game-of-life

Implementation of Conway's Game of Life
JavaScript
1
star
37

express-api-auth-starter

JavaScript
1
star
38

bminor

Go
1
star
39

icon

Rust
1
star
40

express-mongo-jwt

JavaScript
1
star
41

rss-buttondown

Creates Buttondown newsletter drafts from an RSS feed
JavaScript
1
star
42

grpc-node-starter

Starter app for a GRPC-powered server gateway and micro-service using Node.js and Mongoose
JavaScript
1
star