pip install xpctlpython3.14 -m venv .venv
. .venv/bin/activate
pip install -e ".[dev,docs]"The repo ships with a .python-version file pinned to 3.14.2. This keeps
pyenv, pipenv, and other version-discovery tools aligned with the same
default interpreter. xpctl targets the latest three CPython releases and
currently supports Python 3.12 and newer.
If you prefer pipenv, the default flow is:
pipenv install -e ".[dev,docs]"
pipenv run xpctl --helpRun the interactive wizard before your first connection:
xpctl configureFor named profiles:
xpctl configure --profile labThe wizard prompts for:
- profile name
- hostname or IP
- port
- username
- password
- transport (
auto,tcp, orssh)
It attempts a live connection before saving the profile to ~/.xpcli/config.
Subsequent runs pre-fill the existing values and keep them when you press Enter.
xpctl --help
xpctl ping
xpctl --profile lab pingIf the VM does not already have Python or SSH tooling installed, generate a bootstrap bundle from the repo:
xpctl setup bootstrapThat writes artifacts/xp-bootstrap/ with the batch file, the packaged agent,
the pinned Python 3.4.10 archive, and the pinned Cygwin setup executable. Copy
that folder to the guest (e.g. via a shared folder, USB drive, or ISO) and run
bootstrap_xpctl.bat as an administrator:
cd D:\xp-bootstrap
bootstrap_xpctl.batThe batch file performs the following steps:
- Validates that
setup-x86-2.874.exe,python-3.4.10.zip, andagent.pyare present - Creates the
C:\xpctldirectory structure - Installs Cygwin packages (bash, openssh, unzip, curl) from a pinned 2016 HTTP mirror
- Unpacks and installs Python 3.4.10 to
C:\Python34via MSI - Installs the Visual C++ runtime (
vcredist_x86.exe) - Configures the Cygwin
sshdservice (user:cyg_server, password:xpctl-sshd) - Copies the packaged agent to
C:\xpctl\agent.pyand starts it on port9578 - Waits up to 30 seconds for the agent to begin listening
- Opens Windows Firewall ports for SSH (22) and the agent (9578)
Once the script completes successfully, connect from your host:
xpctl pingxpctl.client.XPClient: high-level Python APIxpctl.deploy.AgentDeployer: agent deployment and lifecycle helperxpctl.cli: CLI entry pointxpctl.assets.agent.py: packaged Python 3.4-compatible agent source
make lint
make test
make build
make docs