Skip to main content

Ghost: Autonomous Test Generation Agent

PyPI version Python Versions License Code Style

Ghost is a local-first autonomous agent designed to automate the unit testing lifecycle for Python applications. Functioning as a background daemon, it monitors filesystem events, generates context-aware pytest(or any other framework) suites, and autonomously resolves execution errors through a continuous feedback loop.

It is engineered for privacy and latency, supporting Ollama and LM Studio for fully local execution, alongside Groq, OpenAI, and Anthropic for cloud-based inference.

Core Capabilities

Context-Aware Code Analysis

Unlike generic AI coding assistants, Ghost parses the project's Abstract Syntax Tree (AST) to construct a dependency map. This ensures generated tests utilize correct imports, class hierarchies, and function signatures, significantly reducing runtime errors.

Autonomous Error Resolution (Self-Healing)

Ghost implements a closed-loop control system for test execution. When a generated test fails:

  1. Capture: stdout, stderr, and stack traces are intercepted.
  2. Analysis: The error context is analyzed against the source code.
  3. Patching: The agent generates and applies a fix (e.g., correcting imports, adjusting mocks).
  4. Verification: The test is re-executed to validate the patch.

Logic Verification Protocol ("The Judge")

To prevent regression validation—where tests are modified to match incorrect implementation logic—Ghost employs a secondary verification step. If an AssertionError occurs, a specialized "Judge" agent determines if the discrepancy stems from the test expectation or the source implementation. If the source code is deemed buggy, the agent halts and alerts the developer rather than altering the test.

Provider-Agnostic Architecture

Ghost decouples the agentic logic from the underlying LLM, allowing seamless switching between providers:

  • Groq: Recommended for high-frequency watch modes (low latency).
  • Ollama: Recommended for air-gapped or privacy-constrained environments.
  • OpenAI / Anthropic: Available for complex reasoning tasks.

Installation

Ghost is published to PyPI as ghosttest.

Global Installation (Recommended)

We recommend installing Ghost as a standalone tool using uv to ensure environment isolation.

uv tool install ghosttest

Standard Installation

pip install ghosttest

Quick Start

1. Initialization

Navigate to your project root and initialize the Ghost configuration. This generates a ghost.toml file and performs an initial AST scan of the codebase.

ghost init

2. Environment Configuration

If using cloud providers, export the necessary API keys. Local providers (Ollama/LM Studio) require no configuration.

# Example for Groq
export GROQ_API_KEY=gsk_...

# Example for OpenAI
export OPENAI_API_KEY=sk-...

3. Execution

Start the daemon. Ghost will monitor for file modifications and trigger the generation/healing loop automatically.

ghost watch

Configuration

Ghost is configured via ghost.toml.

[project]
name = "my-application"
language = "python"

[ai]
# Options: groq, ollama, openai, anthropic, lmstudio
provider = "groq"
model = "llama-3.3-70b-versatile"
rate_limit_rpm = 30

[scanner]
# Directories to exclude from context analysis
ignore_dirs = [".venv", "node_modules", "dist", "__pycache__"]
ignore_files = ["setup.py", "conftest.py"]

[tests]
framework = "pytest"
output_dir = "tests"
auto_heal = true
max_heal_attempts = 3
use_judge = true

Command Reference

Command Description
ghost init Initializes configuration and context map.
ghost watch Starts the filesystem monitor daemon.
ghost generate <file> Manually triggers test generation for a specific file.
ghost config Interactive configuration wizard.
ghost providers Lists supported providers and checks API connectivity.
ghost doctor Verifies installation health and dependencies.

License

This project is licensed under the MIT License.

Release files for ghosttest 0.2.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ghosttest 0.2.2.4
File Size Uploaded
ghosttest-0.2.2.4.tar.gz 42.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ghosttest 0.2.2.4
File Interpreter ABI Platform
ghosttest-0.2.2.4-py3-none-any.whl Python 3 none any Details

Total release size:88.4 kB

Release files / ghosttest-0.2.2.4.tar.gz

Download URL ghosttest-0.2.2.4.tar.gz
Size 42.5 kB
Tags Source
SHA-256 checksum
How to use checksums
7f1cd1398111af228fe3a783dce1a50914cff2d5e058f32dcfae1eb0d65215ff
BLAKE2b-256 checksum
How to use checksums
08c252c02a72f76ba57312a879059a33d53bc535bb81133f52b90dbe2ff04d15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / ghosttest-0.2.2.4-py3-none-any.whl

Download URL ghosttest-0.2.2.4-py3-none-any.whl
Size 45.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9e7243c55332702eae2e0ba4d1f93a0e2d4d1760f6a73017cc0b967349cc3047
BLAKE2b-256 checksum
How to use checksums
d852453b9170c87a8474a39a6d76f919805e4972e8a5526acc53a51b5fc2c97f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release history Release notifications | RSS feed

This release

0.2.2.4 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page