Guide
Set up Developer Preview 0.1.0
Verified-package, isolated local setup for a terminal-capable assistant, with private human handoff when needed.
This guide is for the exact published Windows/Linux packages
in 0.1.0-developer-preview. A local AI agent is optional; it needs terminal access
on your computer. Instructions do not install a Skill, accept an agreement or
authorize a download. First personally accept the applicable terms and download
the package on Downloads. Do not put secrets in an assistant chat.
Verify first, then extract
Read the versioned SHA256SUMS over verified HTTPS. Match the filename, size and full SHA-256 before running any packaged executable. The plain Windows prompt and plain Linux prompt pin the same values.
| OS | Archive | SHA-256 |
|---|---|---|
| Windows x64 | axoldb-0.1.0-developer-preview-win-x64-security-r2-crt-final-r1.zip |
670a006a41cb6fd49fa18cf81aa5038ba64c7f69d8d72e3b53cbf7a9cfc52949 |
| Linux x86-64 | axoldb-0.1.0-developer-preview-linux-x64-security-r2.tar.gz |
ec66d658f5630c4136908d8fba07782f4eefdd71d68052b8311dbaf69f995db4 |
Windows can use Get-FileHash -LiteralPath <archive-path> -Algorithm SHA256;
Linux can use sha256sum <archive-path> with the actual safely quoted path.
Stop on mismatch. Extract the entire verified archive into a new user-owned
directory, with a safe archive tool that rejects traversal/unsafe links, keeps
Linux executable bits and valid in-tree links, and overwrites no existing files.
On Linux, run sha256sum --check bundle-manifest.sha256 from that extracted root.
Keep program files separate from instance data. Do not merge into an old install.
Host prerequisites and boundaries
Use a normal non-elevated owner on Windows, a non-root owner on Linux. No development SDK, Docker, separate .NET runtime or system PostgreSQL installation is required: the package contains its product runtime and PostgreSQL 16.15. Windows also has app-local ICU/CRT dependencies. Inspect actual OS/architecture before execution.
Linux’s bundled PostgreSQL metadata records a glibc 2.36 baseline; inspect actual
dynamic library availability for the packaged apphost and PostgreSQL using existing
host tools such as ldd. That baseline alone does not prove all product libraries
are present. Do not guess a universal apt/dnf dependency list. Explain a missing
library and obtain specific consent before a system package installation.
Windows native Studio additionally requires host-installed Microsoft Edge WebView2 Evergreen. Linux native Studio requires a graphical session, GTK 3 and WebKitGTK 4.1 (2.40 or later). No desktop, trust-store change or runtime is installed silently. Headless CLI/Server setup does not require a desktop. Recorded Linux lifecycle evidence covers Fedora 44, Ubuntu 26.04.1 and Debian 13.7; WSL and other host versions must not be described as covered by that matrix. Windows native and hosted CLI evidence have their separate published boundaries.
A new instance, not the default
Choose a unique absolute instance path below your own user state directory and a unique client connection name. Check that neither already exists. Do not use the launcher that chooses the default instance for this isolated setup. If owner-only protection fails, stop and explain; do not weaken ACLs or permissions to continue. If an existing CLI profile document is reported malformed, preserve it and stop for owner assessment; do not overwrite/reset other connections to finish setup.
The following variables stand for your selected paths, not paths to copy literally. In Windows PowerShell:
$Bundle = (Resolve-Path -LiteralPath 'YOUR_NEW_EXTRACTED_DIRECTORY').Path
$Instance = Join-Path $env:LOCALAPPDATA 'axoldb\instances\YOUR_UNIQUE_NAME'
$Axol = Join-Path $Bundle 'bin\axol.exe'
& $Axol --help
& $Axol --local server status --bundle-root $Bundle --instance-root $Instance --output json
& $Axol --local server start --bundle-root $Bundle --instance-root $Instance --output json
& $Axol --local server trust --bundle-root $Bundle --instance-root $Instance --output json
$Config = Get-Content -LiteralPath (Join-Path $Instance 'config\server.json') -Raw | ConvertFrom-Json
$Endpoint = "https://localhost:$($Config.publicHttpsPort)"
On Linux, set bundle to the new extracted root, instance to the new state path,
then use:
axol="$bundle/bin/axol"
"$axol" --help
"$axol" --local server status --bundle-root "$bundle" --instance-root "$instance" --output json
"$axol" --local server start --bundle-root "$bundle" --instance-root "$instance" --output json
"$axol" --local server trust --bundle-root "$bundle" --instance-root "$instance" --output json
Start only if status confirms this intended instance is not already running.
AXOL-SERVER-ALREADY-RUNNING is not a new initialization or permission to stop
another instance. Get the actual numeric publicHttpsPort from the non-secret
config/server.json, and set endpoint="https://localhost:$port" using that value.
Keep both listeners loopback-only; no firewall or public-port changes are needed.
Record the instance ID; never publish secrets/, private TLS keys or logs wholesale.
Strict TLS connection and private bootstrap
After checking connection add --help, choose a new profile name, e.g. a unique
setup-... name. The public CA path reported by server trust is also
<instance>/trust/axoldb-instance-ca.crt. Supply it explicitly with --ca-file;
do not disable hostname/chain validation or silently modify an OS trust store.
& $Axol connection add $Profile --endpoint $Endpoint --ca-file (Join-Path $Instance 'trust\axoldb-instance-ca.crt') --output json
"$axol" connection add "$profile" --endpoint "$endpoint" --ca-file "$instance/trust/axoldb-instance-ca.crt" --output json
Private human step: an assistant whose terminal output is captured must not run the assertion reveal there. Give the user these exact commands with the resolved non-secret paths/profile and a fresh UUID request ID. In a private, unrecorded interactive terminal on the Server host, the user runs the local reveal, then pastes the assertion into bootstrap’s hidden terminal input, never a command argument or chat. Bootstrap stores its returned credential in that profile and prints only safe metadata.
# User's private interactive terminal only; keep $RequestId for outcome recovery.
& $Axol --local server bootstrap-assertion --bundle-root $Bundle --instance-root $Instance --reveal
& $Axol credential bootstrap --connection $Profile --request-id $RequestId --principal "setup/$Profile" --output json
# User's private interactive terminal only; keep $request_id for outcome recovery.
"$axol" --local server bootstrap-assertion --bundle-root "$bundle" --instance-root "$instance" --reveal
"$axol" credential bootstrap --connection "$profile" --request-id "$request_id" --principal "setup/$profile" --output json
Choose the UUID once before these commands ([guid]::NewGuid() in PowerShell,
or the existing Linux /proc/sys/kernel/random/uuid source). Preserve it on an
uncertain outcome. Inspect credential resolve-bootstrap --help and follow the
original request/hash outcome workflow; do not blindly mint a new request or
regenerate a consumed assertion. If native first-run setup already owns the
pending delivery, use that documented UI/recovery flow instead of mixing the two.
Prove authenticated public reading
After the private step, the assistant can resume with non-secret checks:
& $Axol credential list --connection $Profile --output json
& $Axol connection test $Profile --output json
"$axol" credential list --connection "$profile" --output json
"$axol" connection test "$profile" --output json
Require a successful own-credential metadata read over the named HTTPS connection,
and authentication: succeeded in the connection test. Ready, liveness, --local
reads and a friendly profile name alone are insufficient. This does not require
creating a Population, granting broader authority or accessing internal PostgreSQL.
Open Studio when available
For the same instance, use axol --local studio --bundle-root <bundle> --instance-root <instance>
with the actual executable/paths above. Do not launch the default-instance shortcut.
Without suitable GUI/session/libraries, finish the CLI checks and record Studio
not opened. Do not install a desktop or widen X/Wayland permissions automatically.
The CLI credential store and Studio’s in-memory/optional encrypted vault are
separate. For this CLI-first setup, if Studio needs a credential, inspect
credential issue --help: the owner may issue an additional credential with a
fresh --request-id, --connection <profile> and --credential-out <new-owner-private-file>.
Do not use --credential-stdout. The command creates protected output without
overwriting a file; it does not populate Studio automatically. The human reads
that file privately and supplies the credential in Studio’s connection UI for the
actual localhost endpoint. Never send its contents through the assistant transcript.
Only claim GUI connection/read success when observed; otherwise record that exact
human step as pending and retain the independently verified CLI result.
Handoff and safe stop
Report install path, exact instance root/ID, endpoint, profile, actual authenticated
read and pending human actions. Record same-root server start/server status
commands for reuse. Closing Studio leaves Server running. Graceful shutdown:
& $Axol --local server stop --bundle-root $Bundle --instance-root $Instance --output json
"$axol" --local server stop --bundle-root "$bundle" --instance-root "$instance" --output json
Verify the resulting status. Never delete data, kill arbitrary PIDs, reinitialize an existing cluster or stop another instance as a setup shortcut. A later start must use the same compatible bundle/instance; expired credentials need the documented credential workflow, not data deletion. Read operations and limitations. The Operator Skill is optional guidance, not a prerequisite or evidence of compatibility with every agent.