Catalog PyPI
Back to packageRELEASE DETAILS

0.1.0

PyPI

abstract-door

Expose named capabilities on a host through one locked-down SSH key: a forced-command dispatcher with per-key allow-lists and a call log, plus a thin client.

Published7 Oct 2026
Direct dependencies0
Transitive dependenciesNot calculated

README

Version 0.1.0 documentation

abstract-door

Expose named capabilities on a host through one locked-down SSH key.

A door is an SSH key whose forced command is door-serve. The key can run nothing else: no shell, no forwarding, only the capabilities installed packages register and the key's allow-list permits. Every call is logged.

Server (the host that owns the capability)

pip install abstract-door <package-that-registers-capabilities>

~/.ssh/authorized_keys of the account the capabilities must run as:

restrict,command="/path/to/venv/bin/door-serve --client claude@ae --allow 'vault.*'" ssh-ed25519 AAAA… claude@ae door

Calls are logged as JSON lines to /var/log/abstract-door/door.log (or ~/.local/state/abstract-door/door.log) and to syslog (journalctl -t abstract-door).

Registering capabilities

A package adds capabilities through an entry point:

[project.entry-points."abstract_door.capabilities"]
"vault.export" = "pypit.door_caps:export"

A capability is fn(args, stdin, stdout, ctx) -> int: args are the request's arguments, stdin/stdout the binary data channel, ctx holds client, capability and log(msg) (notes added to the call's log line).

Client

door <target> <capability> [args…]   # stdin/stdout pass through
door <target>                        # capabilities this key may run

<target> is an SSH alias door-<target> in ~/.ssh/config (key, user, ProxyJump).

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 0

Native requirements
0 direct targetsNot calculated transitive count
No declared dependencies in this collected response

Declarations describe requirements; they are not a resolved dependency graph.

Distribution files

2 collected
abstract_door-0.1.0-py3-none-any.whl

bdist_wheel · 5.87 KB · Python py3

Source file
abstract_door-0.1.0.tar.gz

sdist · 5.73 KB · Python source

Source file

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 17:40 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:804a9bbe8fab042cd01b6bd35e4c4aafec9b9fe19311190de43a96b4331e8bc3

Other collected versions

View all collected versions →