Skip to content

Getting Started

Install

Each library is independent — install only what you need. truststack-core is pulled in automatically.

pip install truststack-agent-clock
pip install truststack-shipped-or-not
pip install truststack-task-dedupe
pip install truststack-entity-canon
pip install truststack-meta-token-vault

Production backends are optional extras, e.g.:

pip install 'truststack-task-dedupe[redis,postgres,semantic]'
pip install 'truststack-meta-token-vault[aws,azure,hvac,postgres,fernet]'

Requires Python 3.11+.

Your first trust check

Inject trusted time into an LLM prompt with agent-clock:

from agent_clock import ClockInjector

injector = ClockInjector(timezone="Asia/Dubai")
prompt = injector.inject("Summarize today's events")
# Current trusted datetime:
# Wednesday June 10 2026
# 17:55 +04
# Timezone: Asia/Dubai
# UTC Offset: +04:00
#
# User requests:
# Summarize today's events

Verify a deployment claim with shipped-or-not:

from shipped_or_not import DeploymentVerifier

verifier = DeploymentVerifier()
result = await verifier.verify("https://app.example.com", health_path="/healthz")
assert result.status  # DeploymentStatus.SHIPPED only if URL + status + SSL + health all pass

Block a duplicate task with task-dedupe:

from task_dedupe import DedupeEngine, Task

engine = DedupeEngine()
await engine.check(Task(title="Follow up with Anthropic", due="next week"))  # duplicate=False
result = await engine.check(Task(title="Follow up with Anthropic", due="next week"))
assert result.duplicate is True  # existing_task_id set

The shared contract

Every component exposes the same supervised interface:

from agent_clock import ClockInjector

c = ClockInjector(timezone="UTC")
c.version()              # "0.1.0"
await c.health_check()   # HealthStatus(state=HEALTHY, ...)
await c.metrics()        # ComponentMetrics(counters=..., gauges=...)

Build your own component on truststack-core:

from truststack.core import BaseTrustComponent, HealthStatus, HealthState

class MyCheck(BaseTrustComponent):
    component_name = "my-check"
    component_version = "1.0.0"

    async def _check_health(self) -> HealthStatus:
        return HealthStatus(component=self.component_name, state=HealthState.HEALTHY)

See the library reference for the full API of each package, and Architecture for how they fit together.

Develop the suite

This is a uv workspace.

uv sync --all-packages
uv run pytest --cov
uv run ruff check . && uv run mypy packages