Skip to main content

OuEstCharlie — Wally

Wally is the search/consumption agent for OuEstCharlie. It is stateless and read-only: Woof launches it as a child process (MCP server over stdio), passes a structured search predicate via search_photos, and Wally returns matching photo metadata by traversing the manifest tree. It never reads XMP sidecars or writes anything.

More about OuEstCharlie on the OuEstCharlie Blog

Design Documents

Document Purpose
wally_LLD.md Low-level design

Repository Structure

See wally_LLD.md

Installation

From PyPI (recommended)

pip install wally

System prerequisites:

  • macOS: brew install inih brotli gettext (required by pyexiv2 at runtime)
  • Linux/Windows: no extra steps

From source (development)

Requires the sibling ouestcharlie-py-toolkit repo:

uv venv
uv sync

Running Tests

.venv/bin/pytest tests/ -v

MCP Inspector

Wally runs as a standalone HTTP server (streamable HTTP transport), so it cannot use mcp dev. Start it manually and connect the Inspector to the printed port:

WOOF_BACKEND_CONFIG='{"type":"filesystem","root":"/path/to/photos","name":"my-backend"}' \
    .venv/bin/python -m wally
# stdout: WALLY_READY port=<port>

Then start the Inspector and connect to http://127.0.0.1:<port>/mcp (no auth token needed when WOOF_AGENT_TOKEN is unset):

npx @modelcontextprotocol/inspector

Note: The default MCP Inspector timeout is too low for large-library search queries. Increase it in the Inspector settings before calling search_photos.

Context

Repository Purpose
ouestcharlie Architecture docs, HLR/HLD, MCP interface
ouestcharlie-py-toolkit Python toolkit for agents
ouestcharlie-whitebeard Indexing agent
ouestcharlie-wally (this repo) Search/consumption agent
ouestcharlie-woof Woof controller

See ouestcharlie/HLD.md for the overall system architecture.

Download files

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

Source Distribution

ouestcharlie_wally-0.13.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

ouestcharlie_wally-0.13.0-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file ouestcharlie_wally-0.13.0.tar.gz.

File metadata

  • Download URL: ouestcharlie_wally-0.13.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ouestcharlie_wally-0.13.0.tar.gz
Algorithm Hash digest
SHA256 7b61246ae13b0545d304053bf1b1275d36016e711dec7def4d7f4d1a974f7103
MD5 b018a2d91858cd8c1c0ece6a3a1096cc
BLAKE2b-256 5e1c75aa1543b608ab89b7941518483482fc3029c56e46fde6b1b140beded2ba

See more details on using hashes here.

Provenance

The following attestation bundles were made for ouestcharlie_wally-0.13.0.tar.gz:

Publisher: publish.yml on ouestcharlie/ouestcharlie-wally

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

File details

Details for the file ouestcharlie_wally-0.13.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ouestcharlie_wally-0.13.0-py3-none-any.whl
Algorithm Hash digest
SHA256 37af6cddeb7822c540a1b835649d28394960742eff21b0f745ab0b2524269ef7
MD5 35113a9892cf7fb809f93b11f773f77e
BLAKE2b-256 ab727298b9cdd6abbd74e3f51e46d4546719d212fd8500a44d380b4d66e480ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for ouestcharlie_wally-0.13.0-py3-none-any.whl:

Publisher: publish.yml on ouestcharlie/ouestcharlie-wally

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