Skip to main content

Pygent is a minimalist coding assistant that runs commands in a Docker container when available and falls back to local execution. See https://marianochaves.github.io/pygent for documentation and https://github.com/marianochaves/pygent for the source code.

Project description

Pygent

Pygent is a coding assistant that executes each request inside an isolated Docker container whenever possible. If Docker is unavailable (for instance on some Windows setups) the commands are executed locally instead. Full documentation is available in the docs/ directory and at marianochaves.github.io/pygent.

Features

  • Runs commands in ephemeral containers (default image python:3.12-slim).
  • Integrates with OpenAI-compatible models to orchestrate each step.
  • Persists the conversation history during the session.
  • Provides a small Python API for use in other projects.
  • Optional web interface via pygent-ui.
  • Register your own tools and customise the system prompt.

Installation

Installing from source is recommended:

pip install -e .

Python ≥ 3.9 is required. The package now bundles the openai client for model access. To run commands in Docker containers also install pygent[docker].

Configuration

Behaviour can be adjusted via environment variables (see docs/configuration.md for a complete list):

  • OPENAI_API_KEY – key used to access the OpenAI API. Set this to your API key or a key from any compatible provider.
  • OPENAI_BASE_URL – base URL for OpenAI-compatible APIs (defaults to https://api.openai.com/v1).
  • PYGENT_MODEL – model name used for requests (default gpt-4.1-mini).
  • PYGENT_IMAGE – Docker image to create the container (default python:3.12-slim).
  • PYGENT_USE_DOCKER – set to 0 to disable Docker and run locally.
  • PYGENT_MAX_TASKS – maximum number of concurrent delegated tasks (default 3).

CLI usage

After installing run:

pygent

Use --docker to run commands inside a container (requires pygent[docker]). Use --no-docker or set PYGENT_USE_DOCKER=0 to force local execution. Pass --config path/to/pygent.toml to load settings from a file.

Type messages normally; use /exit to end the session. Each command is executed in the container and the result shown in the terminal. Interactive programs that expect input (e.g. running python without a script) are not supported and will exit immediately. For a minimal web interface run pygent-ui instead (requires pygent[ui]).

API usage

You can also interact directly with the Python code:

from pygent import Agent

ag = Agent()
ag.step("echo 'Hello World'")
# ... more steps
ag.runtime.cleanup()

See the examples folder for more complete scripts. Models can be swapped by passing an object implementing the Model interface when creating the Agent. The default uses an OpenAI-compatible API, but custom models are easy to plug in.

Using OpenAI and other providers

Set your OpenAI key:

export OPENAI_API_KEY="sk-..."

To use a different provider, set OPENAI_BASE_URL to the provider endpoint and keep OPENAI_API_KEY pointing to the correct key:

export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
export OPENAI_API_KEY="your-provider-key"

Development

  1. Install the test dependencies:
pip install -e .[test]
  1. Run the test suite:
pytest

Use mkdocs serve to build the documentation locally.

License

This project is released under the MIT license. See the LICENSE file for details.

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

pygent-0.1.15.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

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

pygent-0.1.15-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file pygent-0.1.15.tar.gz.

File metadata

  • Download URL: pygent-0.1.15.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pygent-0.1.15.tar.gz
Algorithm Hash digest
SHA256 29f7a9341ce11e5f8ece9323cf05b221c4b2957f308851f85405cee13a658e59
MD5 bdca5491d1f0f630c8341f40dd06bd7c
BLAKE2b-256 7c44b4ebf50f1b603a48d62fa26f3dc4bbbc834425a5ff3133df47a08dbd1b7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygent-0.1.15.tar.gz:

Publisher: ci.yml on MarianoChaves/pygent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pygent-0.1.15-py3-none-any.whl.

File metadata

  • Download URL: pygent-0.1.15-py3-none-any.whl
  • Upload date:
  • Size: 16.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pygent-0.1.15-py3-none-any.whl
Algorithm Hash digest
SHA256 b793476944813b247bf3d8f384d80dea79dfc73b19d50ecf879962707b3055c9
MD5 03c9a2575af9f5803d5088a29c164d36
BLAKE2b-256 456d006c51ece90d22c3737aa2edf0a0c2615a5ee4d0d64166a5d5867ffe6dad

See more details on using hashes here.

Provenance

The following attestation bundles were made for pygent-0.1.15-py3-none-any.whl:

Publisher: ci.yml on MarianoChaves/pygent

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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