startup-trust-guard
A website can download AGENTS.md or CLAUDE.md into Downloads, where an agent may later treat it as trusted instructions. Agent configuration can also be changed to add an MCP server, redirect a provider URL, or disable approvals. This tool reports startup directory and config baseline risks before you start.
Python 3.9+; standard library only, no runtime or build dependencies, no network.
Install with python3 -m pip install --no-build-isolation ., or run directly:
PYTHONPATH=src python3 -m startup_trust_guard.cli check . --json
startup-trust-guard check ~/Downloads
startup-trust-guard config-check
startup-trust-guard config-check --codex-config ./config.toml --claude-settings ./settings.json
startup-trust-guard baseline save
startup-trust-guard baseline save --out ./baseline.json
startup-trust-guard baseline show
startup-trust-guard baseline show --path ./baseline.json
startup-trust-guard trust add ./AGENTS.md
startup-trust-guard trust list
The scan reads AGENTS.md, CLAUDE.md, GEMINI.md and .cursorrules at the top level and directly inside .claude/ and .cursor/, plus .claude/settings.json as configuration. It does not recurse further. Git-tracked and explicitly trusted files are OK unless suspicious content wins. Downloads paths and recent untracked files are HIGH. Older untracked files are conservatively HIGH too. Suspicious shell pipelines, provider overrides, approval bypasses, destructive commands, credential references and remote MCP definitions are CRITICAL. Symlinks are HIGH and are never followed into credential files. Content matching is heuristic: quoted examples can trigger findings, and obfuscated instructions may evade detection.
Config checks read only ~/.codex/config.toml and ~/.claude/settings.json, or
the explicitly supplied alternatives. MCP entries, provider URL overrides,
and disabled approvals are HIGH. MCP name and provider URL changes against
the default baseline are CRITICAL (ADDED, REMOVED or CHANGED). Baselines
store URL SHA-256 fingerprints instead of raw URLs because URLs can contain
secrets. baseline show displays keys and fingerprint markers, never values.
Python 3.9/3.10 use a bundled copy of the MIT-licensed CPython standard
library TOML parser; Python 3.11+ uses tomllib directly. No external TOML
package is required.
Findings contain names, severities and rule names only, never file contents
or configuration values. Long token-like strings in names are redacted too.
No credential files are opened. Normal checks are read-only. trust add
explicitly writes the trust registry under ~/.config/startup-trust-guard/;
baseline save explicitly writes its baseline there or at --out.
Custom baselines can be shown with --path; automatic config comparison uses
the default baseline. No files are written elsewhere by the tool.
Exit codes: 0 means no HIGH/CRITICAL findings (including no config files),
1 means findings require review, 2 means a usage, input or I/O error.
check --json returns an object with dir and findings; config-check
also supports --json. Configuration values are never included in either format.
This tool does not block an agent, quarantine or delete files, or auto-fix configuration. agent-guard guards tool calls; mcp-audit audits MCP servers. startup-trust-guard guards the startup directory and config baseline.
Run tests from the project root:
python3 -m unittest discover -s tests -v
Metadata
Release files for startup-trust-guard 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| startup_trust_guard-0.1.0.tar.gz | 18.1 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| startup_trust_guard-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.3 kB
Release files / startup_trust_guard-0.1.0.tar.gz
| Download URL | startup_trust_guard-0.1.0.tar.gz |
|---|---|
| Size | 18.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a2dd567b5acc3500dffbbe3e7205e2afba4f313d35429a7cf674358fa6fa2db3
|
|
BLAKE2b-256 checksum How to use checksums |
ba7b17a8f994bd0130a2ea5f2c4852e029d1907194009f1e3e5375da44147c5c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / startup_trust_guard-0.1.0-py3-none-any.whl
| Download URL | startup_trust_guard-0.1.0-py3-none-any.whl |
|---|---|
| Size | 17.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b535d7a61ac16fdb72082aa2a1a8f3694317d6b29eaee5a62370a5d9c260d0f3
|
|
BLAKE2b-256 checksum How to use checksums |
1d209036a484dc34b193a266de8690fe3968f3d349f1cc3fc50ca64c55e89036
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Security for startup-trust-guard 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.