Skip to main content

AEMS Local Bridge Agent — local filesystem access for exam PDFs

Project description

AEMS Local Bridge Agent

As of v0.3.2 (2026-05-11), this package is licensed under AGPL-3.0-or-later (previously MIT). The agent links PyMuPDF in-process via aems-pdf-annotator, and AGPL applies to the combined work. See LICENSE for the full text.

A lightweight companion service that runs on localhost and provides REST API access to the local filesystem, enabling the AEMS hosted app to read/write exam PDFs to a user-chosen folder without ever uploading source PDFs to the server.

What it does

  • Runs as a local service on 127.0.0.1:61234 (default).
  • Exposes an authenticated REST API the AEMS web app uses to read source PDFs and write annotated PDFs from your local storage folder.
  • Enforces local Host headers and a PIN-based browser pairing flow before granting the web app access.
  • Optional system-tray icon so it's visible while running.
  • Optional offline grading bundle support for fully-local workflows.
  • Never sends PDF content out unless the user explicitly attaches a Canvas / offline workflow in the hosted app.

Installation

Binary installers (recommended for end users)

Pre-built installers — no Python needed — are on the Releases page.

Platform File Notes
Windows aems-agent-setup.exe Installs to %LOCALAPPDATA%\AEMS Agent
macOS AEMS-Agent.dmg Drag to Applications
Linux aems-agent-linux.tar.gz Extract and run ./aems-agent run

pip (for developers)

pip install aems-agent

Requires Python 3.10+.

Usage

# Print version and exit
aems-agent --version

# Start the agent (default: http://127.0.0.1:61234)
aems-agent run

# Start with system tray icon
aems-agent run --tray

# Custom port/host
aems-agent run --port 9000 --host 0.0.0.0

# Show auth token (the hosted app pairs against this token)
aems-agent token

# Set storage path
aems-agent set-path /path/to/exam/folder

# Show config directory
aems-agent config-dir

After aems-agent run, open AEMS in your browser, go to Settings → Storage, and pair the agent.

License

AGPL-3.0-or-later. See LICENSE.

Relicense note (v0.3.2, 2026-05-11): Versions ≤ 0.3.1 were licensed under MIT. From v0.3.2 the agent is AGPL-3.0-or-later because it links PyMuPDF (AGPL-3.0) in-process via aems-pdf-annotator. The MIT licence that previously applied to forks of v0.3.1 and earlier remains in effect for those versions.

Links

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

aems_agent-0.4.5.tar.gz (105.2 kB view details)

Uploaded Source

Built Distribution

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

aems_agent-0.4.5-py3-none-any.whl (61.6 kB view details)

Uploaded Python 3

File details

Details for the file aems_agent-0.4.5.tar.gz.

File metadata

  • Download URL: aems_agent-0.4.5.tar.gz
  • Upload date:
  • Size: 105.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for aems_agent-0.4.5.tar.gz
Algorithm Hash digest
SHA256 ac3e8aad4d3b5007bff0d72efca7195db4078e4751663f8096bedb087f162e07
MD5 f525f055ed581edbeb7fb5d8dcdd984a
BLAKE2b-256 fc94e626c381eae4fae6df0c422ad6565c859fa4fa2045c9fd21070bfdfed0b5

See more details on using hashes here.

File details

Details for the file aems_agent-0.4.5-py3-none-any.whl.

File metadata

  • Download URL: aems_agent-0.4.5-py3-none-any.whl
  • Upload date:
  • Size: 61.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for aems_agent-0.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 834865aa037e61c8e6404365a9e59bd2c75b118685d81ce1dc78cc1f5f0781f2
MD5 a158a28a95b7e2a5c30318a788b2829b
BLAKE2b-256 e5ff6c100c9f49358216f42a5e3f92271305523a1bad7c94ddb9d0699355a9d6

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