Skip to main content

Screenshot-based multiple-choice assistant for macOS.

Project description

Gorilla Test Assistant

Small macOS CLI that listens for a left Alt keypress, captures the current screen, and asks a multimodal DSPy program to answer the visible multiple-choice question.

For background on why this project exists, read the included article: Pass any TestGorilla Assessment.

Install From PyPI

The package name is gorilla-test-assistant and it installs the gorilla-test command.

With uv:

uv tool install --python 3.11.6 gorilla-test-assistant

With pip:

python3.11 -m pip install gorilla-test-assistant

This project supports Python >=3.11,<3.12 because the keyboard listener stack is known to be safest on Python 3.11.

API Keys

The default model is openai/gpt-5.4-mini, so the default setup is:

export OPENAI_API_KEY="your-api-key"

The CLI accepts an LLM model name in LiteLLM format through --model. Provider prefixes like openai/, anthropic/, and groq/ are passed through as-is. If you use an unprefixed model name, the CLI does not rewrite it or assume a provider.

For common provider-prefixed models, set the standard provider environment variable:

Provider prefix Environment variable
openai/ OPENAI_API_KEY
anthropic/ ANTHROPIC_API_KEY
gemini/ or google/ GEMINI_API_KEY or GOOGLE_API_KEY
groq/ GROQ_API_KEY
mistral/ MISTRAL_API_KEY
openrouter/ OPENROUTER_API_KEY
together/ TOGETHER_API_KEY
xai/ XAI_API_KEY

For another provider, point the CLI at the variable name:

gorilla-test --model provider/model-name --api-key-env PROVIDER_API_KEY

For unprefixed model names, use the environment variables expected by LiteLLM for that model.

Usage

Start the listener:

gorilla-test

When a multiple-choice question is visible, press the left Alt key. The CLI prints the structured answer and sends a macOS notification with the selected option number.

On a Mac keyboard, the left Alt key is the left option / alt key:

Mac keyboard with the left option alt key circled

Image adapted from MacBook option key.JPG by Gerolsteiner91, licensed under CC BY-SA 2.5. Modified with a red circle around the left option / alt key.

Choose a different model:

gorilla-test --model openai/gpt-5.4

Change the output token budget:

gorilla-test --max-tokens 8192

Show all options:

gorilla-test --help

Local Development

Run the CLI from this checkout without installing it globally:

uv run --python 3.11.6 --with . gorilla-test --help

Install the current checkout as a global uv tool while developing:

uv tool install --python 3.11.6 --force .

Run the tests:

uv run --python 3.11.6 --with . python -m unittest -v

Build the package:

uv build

Notes

  • The tool is designed for macOS.
  • macOS may require Accessibility and Screen Recording permissions for the terminal app running the CLI.
  • DSPy uses ChainOfThought, so reasoning is produced by the program instead of being modeled as a manual Pydantic output field.
  • Reasoning effort defaults to high.
  • The default max token budget is 8192.

Disclaimer

This project highlights the need for better assessment methods in tech hiring. Use it responsibly and respect the terms of service for any platform involved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gorilla_test_assistant-0.1.1.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gorilla_test_assistant-0.1.1-py3-none-any.whl (6.1 kB view details)

Uploaded Python 3

File details

Details for the file gorilla_test_assistant-0.1.1.tar.gz.

File metadata

  • Download URL: gorilla_test_assistant-0.1.1.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.1

File hashes

Hashes for gorilla_test_assistant-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0c2b79011179e4f6064a3ec9bf50418e30413f879b671b2e44c0ce5eea7d48ee
MD5 4463e0b14af321ad21d00a2e6bf9d663
BLAKE2b-256 4490fc00e8c1dee91df7e9a9d0a95de2b65e3b008730d4b1c8267fa838dfc8b8

See more details on using hashes here.

File details

Details for the file gorilla_test_assistant-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for gorilla_test_assistant-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 59cd5e1e19e5fdb91da609ae7331e1d23e211dc1fe1ebb5174593668b6fbc04d
MD5 a2e0a580291d97cede2d5f730e8c51b8
BLAKE2b-256 feff7a229f40feb9424e75fd34d66e92c9dc69d6a599b32d98cc920f54de9760

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page