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.
- 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
- Homepage: https://aems.app
- Source: https://github.com/aems-app/aems-agent
- Issues: https://github.com/aems-app/aems-agent/issues
- Annotation engine: aems-pdf-annotator
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aems_agent-0.3.2.tar.gz.
File metadata
- Download URL: aems_agent-0.3.2.tar.gz
- Upload date:
- Size: 84.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9eab85499d278ca7c29762389c0cb53beab78b941d7e28a16face61f999c7295
|
|
| MD5 |
a0c180a6f6d3529d9f75d94a99dc92c8
|
|
| BLAKE2b-256 |
00c583452c73553c59538204e28f93160e0bca4f8c3b6fa4331b85cdd01c1057
|
File details
Details for the file aems_agent-0.3.2-py3-none-any.whl.
File metadata
- Download URL: aems_agent-0.3.2-py3-none-any.whl
- Upload date:
- Size: 52.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99c68b5e8825d3c05bd7c05a0328399563d40c0aa86fd2bc3510e4e494998f4f
|
|
| MD5 |
67239aa826349f4cf3d93f3fa5018079
|
|
| BLAKE2b-256 |
80ee68c9b5ea5efe07091f6bbf8335e964c94d26538eaa8490b10a022dda78af
|