Governance
Understand what your agents did and test the controls that matter.
Observe connected agents and apply supported controls. Teams that need to connect agents, inspect observed actions and test the policies they configure.
Full product access for 180 days after activation. No subscription during the trial.
One connected-host event
Illustrativewrite_file on a connected host
ReviewA detected installation is not automatically reporting. The policy decision is recorded with the observed action.
host: local-agent · policy: write-review-v3
One connected-host event
Connect one agent, wait for an observed action, then open the policy decision. If the daemon stops, new observations stop for that host.
- 01
Install
Create a dedicated environment, install the pinned Governance package, then run init.
- 02
Connect one agent
Start with one supported host. Confirm it is reporting, not only detected.
- 03
Inspect a decision
Open one observed action and the policy decision recorded for it.
Observed action and policy decision
Governance records observations and decisions. It does not invent hidden model reasoning. Local tamper evidence is not external WORM storage, legal certification, or proof of unobserved events.
What it does
- Discovery of supported local agent installations
- A detected installation is not necessarily reporting
- Observed actions and policy decisions you configure
- A post-hoc log is not a pre-tool enforcement hook
- Open Evidence Kit as a separate verification resource
Prerequisites
- Python 3.10 or newer
- Windows x64, Linux x86_64 with glibc 2.28 or newer, or macOS 15 on Apple silicon
- At least one supported agent host you can connect
Supported connections: Email alerts (optional delivery), Slack (optional delivery), HTTPS webhook (optional delivery)
Data handling
The primary indexes and source processing run on your device. Account services and selected bounded policy decisions use MemStrata services. A cloud reader or destination receives the content needed for the connection you choose. Credentials are stored in the operating-system credential vault. Customer content is not used for training unless the customer separately opts in.
| Feature | Local material | Possible outbound | Trigger | Credential location |
|---|---|---|---|---|
| OAuth, signed entitlements, and device registration | Device and entitlement cache | Identity and device-bound entitlement fields | Sign-in or refresh | Operating-system credential vault |
| User-selected cloud model or connector | Local evidence selection and indexes | Only the data required for that explicit operation | User configures and sends the request | Operating-system credential vault |
| MemStrata-managed email | Local alert or report draft | Minimized message and recipient | User-configured delivery; one message per signed-in user per UTC day during trial | Server secret plus entitlement |
| Policy decisions, alerts, and optional archive | Inventory, policy versions, observations, and hash-linked evidence | Email, Slack, or HTTPS webhook payloads where live-tested; optional S3 archive | User-configured alert or archive | Operating-system credential vault or customer provider |
Install
Install MemStrata on Windows, Linux and Apple silicon
Full product access for 180 days after activation. No subscription during the trial.
Detected choices are a suggestion only. A browser cannot reliably know your macOS version or whether Python is installed.
Python 3.10 or newer is required. On Windows, if Python is missing, install it from python.org/downloads/windows and open a new terminal.
Microsoft Store Python redirects LocalAppData writes. The Windows command follows the real environment path after venv so pip is not pointed at an empty folder.
MemStrata Conversational 0.7.12 · Windows x64 · Python >=3.10
Windows 10 or newer, x64. Next step after install:
memstrata-conversational.cmd init
PowerShell
$venv = "$env:LOCALAPPDATA\MemStrata\venvs\conversational"
py -3 -m venv "$venv"
if ($LASTEXITCODE -ne 0) { throw 'Could not create the environment.' }
$python = "$venv\Scripts\python.exe"
if (-not (Test-Path -LiteralPath $python)) {
$python = (py -3 -c "import os, sys; print(os.path.realpath(sys.argv[1]))" $python).Trim()
}
if (-not (Test-Path -LiteralPath $python)) { throw 'Could not create the environment.' }
$scripts = Split-Path -Parent $python
& $python -m pip install --upgrade pip
if ($LASTEXITCODE -ne 0) { throw 'Could not update pip.' }
$wheel = 'https://files.pythonhosted.org/packages/5a/02/3474fa9b4313e9508c3b38522b058c1797231bade7a67838a2bf1708bbc5/memstrata_conversational-0.7.12-py3-none-win_amd64.whl'
& $python -m pip install --only-binary=:all: "$wheel"
if ($LASTEXITCODE -ne 0) { throw 'Installation did not finish.' }
$actualVersion = (& "$scripts\memstrata-conversational.cmd" --pypi-package-version | Out-String).Trim()
if ($LASTEXITCODE -ne 0 -or $actualVersion -ne '0.7.12') { throw 'The installed version does not match the advertised release.' }
Write-Output "Installed version: $actualVersion"
& "$scripts\memstrata-conversational.cmd" init memstrata_conversational-0.7.12-py3-none-win_amd64.whl · sha256 e6973e290b7b82d1e4391716b181a7148fd9b43229802413e73acac27111b874
Microsoft Store is a separate listing, not this wheel command. View Conversational in Microsoft Store
MemStrata Conversational 0.7.12 · Linux x86_64 (glibc 2.28 or newer) · Python >=3.10
Linux x86_64 with glibc 2.28 or newer. Next step after install:
memstrata-conversational init
Terminal (bash/zsh)
venv="$HOME/.local/share/memstrata/venvs/conversational"
python3 -m venv "$venv" || exit 1
"$venv/bin/python" -m pip install --upgrade pip || exit 1
wheel='https://files.pythonhosted.org/packages/12/4b/a48621fa2295ca144aa4ebf622f5681b7bc744601ab7d2b03465a6e92811/memstrata_conversational-0.7.12-py3-none-manylinux_2_28_x86_64.whl'
"$venv/bin/python" -m pip install --only-binary=:all: "$wheel" || exit 1
actual_version=$("$venv/bin/memstrata-conversational" --pypi-package-version) || exit 1
[ "$actual_version" = "0.7.12" ] || { echo "Installed version does not match the advertised release."; exit 1; }
echo "Installed version: $actual_version"
"$venv/bin/memstrata-conversational" init memstrata_conversational-0.7.12-py3-none-manylinux_2_28_x86_64.whl · sha256 745c5c7050cdd96cc34ab49a03c3cb3ba53959cbf569f598bc3c95d6994a2d5f
MemStrata Conversational 0.7.12 · macOS 15 or newer on Apple silicon · Python >=3.10
macOS 15 or newer on Apple silicon. Next step after install:
memstrata-conversational init
Terminal (bash/zsh)
venv="$HOME/.local/share/memstrata/venvs/conversational"
python3 -m venv "$venv" || exit 1
"$venv/bin/python" -m pip install --upgrade pip || exit 1
wheel='https://files.pythonhosted.org/packages/5a/dd/283a835260a0e4126c175ed8676360e93eb3bf475e9f42bb8a3462bace87/memstrata_conversational-0.7.12-py3-none-macosx_15_0_arm64.whl'
"$venv/bin/python" -m pip install --only-binary=:all: "$wheel" || exit 1
actual_version=$("$venv/bin/memstrata-conversational" --pypi-package-version) || exit 1
[ "$actual_version" = "0.7.12" ] || { echo "Installed version does not match the advertised release."; exit 1; }
echo "Installed version: $actual_version"
"$venv/bin/memstrata-conversational" init memstrata_conversational-0.7.12-py3-none-macosx_15_0_arm64.whl · sha256 42a221deb04b74e09620a2c3d1ed096987455de04c23f08f265a9d21c23b80d4
MemStrata Coder 0.6.32 · Windows x64 · Python >=3.10
Windows 10 or newer, x64. Next step after install:
memstrata-coder.cmd init
PowerShell
$venv = "$env:LOCALAPPDATA\MemStrata\venvs\coder"
py -3 -m venv "$venv"
if ($LASTEXITCODE -ne 0) { throw 'Could not create the environment.' }
$python = "$venv\Scripts\python.exe"
if (-not (Test-Path -LiteralPath $python)) {
$python = (py -3 -c "import os, sys; print(os.path.realpath(sys.argv[1]))" $python).Trim()
}
if (-not (Test-Path -LiteralPath $python)) { throw 'Could not create the environment.' }
$scripts = Split-Path -Parent $python
& $python -m pip install --upgrade pip
if ($LASTEXITCODE -ne 0) { throw 'Could not update pip.' }
$wheel = 'https://files.pythonhosted.org/packages/d4/85/63fa52b44263148a68f5780dae7e18767a078c69261b5367fce08d79818e/memstrata_coder-0.6.32-py3-none-win_amd64.whl'
& $python -m pip install --only-binary=:all: "$wheel"
if ($LASTEXITCODE -ne 0) { throw 'Installation did not finish.' }
$actualVersion = (& "$scripts\memstrata-coder.cmd" --pypi-package-version | Out-String).Trim()
if ($LASTEXITCODE -ne 0 -or $actualVersion -ne '0.6.32') { throw 'The installed version does not match the advertised release.' }
Write-Output "Installed version: $actualVersion"
& "$scripts\memstrata-coder.cmd" init memstrata_coder-0.6.32-py3-none-win_amd64.whl · sha256 ef1bd4506921e848f8e7a73a25b3a384a8013456cbddb652e3048b8fec062b26
Microsoft Store is a separate listing, not this wheel command. View Coder in Microsoft Store
MemStrata Coder 0.6.32 · Linux x86_64 (glibc 2.28 or newer) · Python >=3.10
Linux x86_64 with glibc 2.28 or newer. Next step after install:
memstrata-coder init
Terminal (bash/zsh)
venv="$HOME/.local/share/memstrata/venvs/coder"
python3 -m venv "$venv" || exit 1
"$venv/bin/python" -m pip install --upgrade pip || exit 1
wheel='https://files.pythonhosted.org/packages/7c/ea/4e56e6f26074f9ee6e8d785b927571a425458b603f25cc9d8d6b425e947a/memstrata_coder-0.6.32-py3-none-manylinux_2_28_x86_64.whl'
"$venv/bin/python" -m pip install --only-binary=:all: "$wheel" || exit 1
actual_version=$("$venv/bin/memstrata-coder" --pypi-package-version) || exit 1
[ "$actual_version" = "0.6.32" ] || { echo "Installed version does not match the advertised release."; exit 1; }
echo "Installed version: $actual_version"
"$venv/bin/memstrata-coder" init memstrata_coder-0.6.32-py3-none-manylinux_2_28_x86_64.whl · sha256 e3c3a5c39a576963f76a000bdcf455452af051f0371c4b76645a43e1166479a5
MemStrata Coder 0.6.32 · macOS 15 or newer on Apple silicon · Python >=3.10
macOS 15 or newer on Apple silicon. Next step after install:
memstrata-coder init
Terminal (bash/zsh)
venv="$HOME/.local/share/memstrata/venvs/coder"
python3 -m venv "$venv" || exit 1
"$venv/bin/python" -m pip install --upgrade pip || exit 1
wheel='https://files.pythonhosted.org/packages/d4/0e/1178d2b6dd5cdcfccbcb292b39b6a47ce56d7f225f3fcc3059d713d6d83b/memstrata_coder-0.6.32-py3-none-macosx_15_0_arm64.whl'
"$venv/bin/python" -m pip install --only-binary=:all: "$wheel" || exit 1
actual_version=$("$venv/bin/memstrata-coder" --pypi-package-version) || exit 1
[ "$actual_version" = "0.6.32" ] || { echo "Installed version does not match the advertised release."; exit 1; }
echo "Installed version: $actual_version"
"$venv/bin/memstrata-coder" init memstrata_coder-0.6.32-py3-none-macosx_15_0_arm64.whl · sha256 85d3b467d1a2694ddeca1b3a392092c59a5cf517dfa6aec129c9f9b9a17999a2
MemStrata Structured 0.7.3 · Windows x64 · Python >=3.10
Windows 10 or newer, x64. Next step after install:
memstrata-structured.cmd init
PowerShell
$venv = "$env:LOCALAPPDATA\MemStrata\venvs\structured"
py -3 -m venv "$venv"
if ($LASTEXITCODE -ne 0) { throw 'Could not create the environment.' }
$python = "$venv\Scripts\python.exe"
if (-not (Test-Path -LiteralPath $python)) {
$python = (py -3 -c "import os, sys; print(os.path.realpath(sys.argv[1]))" $python).Trim()
}
if (-not (Test-Path -LiteralPath $python)) { throw 'Could not create the environment.' }
$scripts = Split-Path -Parent $python
& $python -m pip install --upgrade pip
if ($LASTEXITCODE -ne 0) { throw 'Could not update pip.' }
$base = 'https://github.com/yadu9989/memstrata-binaries'
$release = "$base/releases/download/structured-0.7.3"
$wheel = "$release/memstrata_structured-0.7.3-py3-none-win_amd64.whl"
& $python -m pip install --only-binary=:all: "$wheel"
if ($LASTEXITCODE -ne 0) { throw 'Installation did not finish.' }
$actualVersion = (& "$scripts\memstrata-structured.cmd" --pypi-package-version | Out-String).Trim()
if ($LASTEXITCODE -ne 0 -or $actualVersion -ne '0.7.3') { throw 'The installed version does not match the advertised release.' }
Write-Output "Installed version: $actualVersion"
& "$scripts\memstrata-structured.cmd" init memstrata_structured-0.7.3-py3-none-win_amd64.whl · sha256 63133a1dae1834a39f02f6eb574e1b9d2a834f784aff98d36f3f86f6392e61e0
Microsoft Store is a separate listing, not this wheel command. View Structured in Microsoft Store
Structured Windows uses the repaired 0.7.3 GitHub wheel. It does not fall back to PyPI 0.7.0.
MemStrata Structured 0.7.2 · Linux x86_64 (glibc 2.28 or newer) · Python >=3.10
Linux x86_64 with glibc 2.28 or newer. Next step after install:
memstrata-structured init
Terminal (bash/zsh)
venv="$HOME/.local/share/memstrata/venvs/structured"
python3 -m venv "$venv" || exit 1
"$venv/bin/python" -m pip install --upgrade pip || exit 1
wheel='https://files.pythonhosted.org/packages/2b/78/ac0ba62d5433aa6c7603eb48d08b16f124d0c75c324deb402d1450d80eaa/memstrata_structured-0.7.2-py3-none-manylinux_2_28_x86_64.whl'
"$venv/bin/python" -m pip install --only-binary=:all: "$wheel" || exit 1
actual_version=$("$venv/bin/memstrata-structured" --pypi-package-version) || exit 1
[ "$actual_version" = "0.7.2" ] || { echo "Installed version does not match the advertised release."; exit 1; }
echo "Installed version: $actual_version"
"$venv/bin/memstrata-structured" init memstrata_structured-0.7.2-py3-none-manylinux_2_28_x86_64.whl · sha256 432f1c83702070a2b5d7819eb00f49e6448a9ae86a664b20f9709264526b5f5b
MemStrata Structured 0.7.2 · macOS 15 or newer on Apple silicon · Python >=3.10
macOS 15 or newer on Apple silicon. Next step after install:
memstrata-structured init
Terminal (bash/zsh)
venv="$HOME/.local/share/memstrata/venvs/structured"
python3 -m venv "$venv" || exit 1
"$venv/bin/python" -m pip install --upgrade pip || exit 1
base='https://github.com/yadu9989/memstrata-binaries'
release="$base/releases/download/structured-0.7.2"
wheel="$release/memstrata_structured-0.7.2-py3-none-macosx_15_0_arm64.whl"
"$venv/bin/python" -m pip install --only-binary=:all: "$wheel" || exit 1
actual_version=$("$venv/bin/memstrata-structured" --pypi-package-version) || exit 1
[ "$actual_version" = "0.7.2" ] || { echo "Installed version does not match the advertised release."; exit 1; }
echo "Installed version: $actual_version"
"$venv/bin/memstrata-structured" init memstrata_structured-0.7.2-py3-none-macosx_15_0_arm64.whl · sha256 46d5f8f533baa5d18e3510addff81c4cab9e1e61a975c567db1fabb8f99ffee6
MemStrata Governance 0.7.2 · Windows x64 · Python >=3.10
Windows 10 or newer, x64. Next step after install:
memstrata-governance.cmd init
PowerShell
$venv = "$env:LOCALAPPDATA\MemStrata\venvs\governance"
py -3 -m venv "$venv"
if ($LASTEXITCODE -ne 0) { throw 'Could not create the environment.' }
$python = "$venv\Scripts\python.exe"
if (-not (Test-Path -LiteralPath $python)) {
$python = (py -3 -c "import os, sys; print(os.path.realpath(sys.argv[1]))" $python).Trim()
}
if (-not (Test-Path -LiteralPath $python)) { throw 'Could not create the environment.' }
$scripts = Split-Path -Parent $python
& $python -m pip install --upgrade pip
if ($LASTEXITCODE -ne 0) { throw 'Could not update pip.' }
$wheel = 'https://files.pythonhosted.org/packages/5f/fa/121c7399f4ec5c4d132fbb3b81f213ed3428860d78b10d261086f557dc7e/memstrata_governance-0.7.2-py3-none-win_amd64.whl'
& $python -m pip install --only-binary=:all: "$wheel"
if ($LASTEXITCODE -ne 0) { throw 'Installation did not finish.' }
$actualVersion = (& "$scripts\memstrata-governance.cmd" --pypi-package-version | Out-String).Trim()
if ($LASTEXITCODE -ne 0 -or $actualVersion -ne '0.7.2') { throw 'The installed version does not match the advertised release.' }
Write-Output "Installed version: $actualVersion"
& "$scripts\memstrata-governance.cmd" init memstrata_governance-0.7.2-py3-none-win_amd64.whl · sha256 39e716f1b57cbd4c7551dcc59469407f7917a0f19f124d8c678b450555e4a407
Microsoft Store is a separate listing, not this wheel command. View Governance in Microsoft Store
MemStrata Governance 0.7.2 · Linux x86_64 (glibc 2.28 or newer) · Python >=3.10
Linux x86_64 with glibc 2.28 or newer. Next step after install:
memstrata-governance init
Terminal (bash/zsh)
venv="$HOME/.local/share/memstrata/venvs/governance"
python3 -m venv "$venv" || exit 1
"$venv/bin/python" -m pip install --upgrade pip || exit 1
wheel='https://files.pythonhosted.org/packages/79/4e/906aa2ddf6506cbabc30cdf918856f0d4cef2c0319e37572a0388beb0763/memstrata_governance-0.7.2-py3-none-manylinux_2_28_x86_64.whl'
"$venv/bin/python" -m pip install --only-binary=:all: "$wheel" || exit 1
actual_version=$("$venv/bin/memstrata-governance" --pypi-package-version) || exit 1
[ "$actual_version" = "0.7.2" ] || { echo "Installed version does not match the advertised release."; exit 1; }
echo "Installed version: $actual_version"
"$venv/bin/memstrata-governance" init memstrata_governance-0.7.2-py3-none-manylinux_2_28_x86_64.whl · sha256 08a46ee0a6d627e6114ce330791ee77f9a9e707b37a585d794784f94e05375fa
MemStrata Governance 0.7.2 · macOS 15 or newer on Apple silicon · Python >=3.10
macOS 15 or newer on Apple silicon. Next step after install:
memstrata-governance init
Terminal (bash/zsh)
venv="$HOME/.local/share/memstrata/venvs/governance"
python3 -m venv "$venv" || exit 1
"$venv/bin/python" -m pip install --upgrade pip || exit 1
wheel='https://files.pythonhosted.org/packages/db/9a/5f02c7da3ea9bf04f6c229c5d87bead3f062422e08e41ce4ef38a2899d47/memstrata_governance-0.7.2-py3-none-macosx_15_0_arm64.whl'
"$venv/bin/python" -m pip install --only-binary=:all: "$wheel" || exit 1
actual_version=$("$venv/bin/memstrata-governance" --pypi-package-version) || exit 1
[ "$actual_version" = "0.7.2" ] || { echo "Installed version does not match the advertised release."; exit 1; }
echo "Installed version: $actual_version"
"$venv/bin/memstrata-governance" init memstrata_governance-0.7.2-py3-none-macosx_15_0_arm64.whl · sha256 19411dacfbc5b1bb62f1d3e197a740b38916f33cd998f1bfb9179e69d9472ada
180 days of full product access after activation. No subscription during the trial. Reinstalling does not restart it. Model-provider charges, if any, are separate. MemStrata-managed email is limited to one message per signed-in user per UTC day. For access after the trial, contact us about the appropriate paid entitlement. Trial terms
FAQ
What can the product observe?
Actions reported by connected, supported hosts. A detected installation is not automatically an observing one.
Can a blocked action still run through another path?
Yes. A policy decision in Governance does not prove that every other path on the machine was blocked. A post-hoc log is not a pre-tool enforcement hook.
What happens when the daemon stops?
New observations stop for hosts that depend on it. Outage behavior is host-specific. Existing local evidence remains on the device.
What does a signature prove?
A signed selection proves the recorded bytes match the signature. It does not prove the answer was correct or that unobserved events did not happen.
Does this certify compliance?
No. A desktop install does not provision a certified archive or legal compliance. The open Evidence Kit is a separate verification resource.