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.0.tar.gz (5.5 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.0-py3-none-any.whl (5.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gorilla_test_assistant-0.1.0.tar.gz
  • Upload date:
  • Size: 5.5 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.0.tar.gz
Algorithm Hash digest
SHA256 a7860684a931ef503eafcb1ae984bef75465fc4ce67a0874ef621556e9881902
MD5 5e76bc03a47e8199202f3e670f4b9341
BLAKE2b-256 87358a248085a81e9f57439f6c6963d5b92feeac3d06657bd937a41978cfd427

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for gorilla_test_assistant-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7415cef2e228444d89bd0a250b363c00dacd4a6cd625270254e1684489bc4ec5
MD5 6435071895e63e213ac878bf64a0e60c
BLAKE2b-256 c689790e1adea5bbbfc223fa2d26fca1c1f169b86a65a83100fe9fd3c7d576d6

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