Structured
Ask your operational records what is current and what changed.
Report on current and historical records. Operations teams that need current-state, history and change answers with a witness, or an honest refusal.
Full product access for 180 days after activation. No subscription during the trial.
Two incident records and an owner change
IllustrativeRecord
INC-104
Was
Sam Ortiz
Now
Jordan Lee
Who owns incident INC-104 now?
Jordan Lee. Effective 12 March. Witness attached.
Two incident records and an owner change
Import a fictional pair of incidents. Change the owner on one. Ask who owns it now and what changed. Forecasting and arbitrary analytics are refused.
- 01
Install
Use the platform-specific command. Windows uses the GitHub 0.7.3 wheel, not an unpinned PyPI install.
- 02
Map records
Set a stable record key and effective time. A composite of policy name plus table name is one example, not the right key for every dataset.
- 03
Ask what changed
Import two records, update an owner, then ask the supported change question.
Answer, witness, or refusal
A supported question returns the answer, source witnesses and hashes. An unsupported or predictive question is refused instead of guessed.
What it does
- Import preview with Record identity, Effective time and selected fields
- Deterministic answers for supported current, count, owner, history, comparison and as-of questions
- Import date records a snapshot. It does not reconstruct unavailable history
- Windows 0.7.3 is the repaired wheel. Linux remains on PyPI 0.7.2. macOS 15 Apple silicon uses the GitHub 0.7.2 wheel
Prerequisites
- Python 3.10 or newer
- A CSV, Excel or Parquet file with a stable record key. A date column is not required for every import
- Windows x64 uses GitHub wheel 0.7.3. Linux x86_64 uses PyPI 0.7.2. macOS 15 Apple silicon uses GitHub wheel 0.7.2
Supported connections: CSV (file import), Excel (file import), Parquet (file import)
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 |
| Deterministic operational answers | Mapped records, effective-time state, witnesses, and hashes | None for core answers. Optional watches use confirmed connectors only | User question; connector delivery only when configured | 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
Do I need an LLM?
No. Core deterministic answers do not require Ollama or a generative model.
Can I import a file with no date column?
Yes. You still map a record identity. Import date records a snapshot. It does not invent a history the file does not contain.
Why can records merge?
Rows that share the mapped record key are treated as the same entity over time. Choose a key that is actually stable in your file.
What questions are supported?
Current-state, count, owner, history, comparison and as-of questions over mapped records. Predictive and arbitrary analytics questions are refused.
Does this do forecasting or arbitrary analytics?
No. Those questions are outside the deterministic answer boundary.