[package]
edition = "2024"
rust-version = "1.95"
name = "openmoat"
version = "0.4.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Policy guard for AI coding agents: decides allow, ask or deny for every tool call from Claude Code, Codex and Cursor, configures Claude Code's and Codex's own OS sandboxes from the same policy, and keeps a local audit log."
homepage = "https://github.com/crocodile-labs/openmoat"
readme = "README.md"
keywords = [
"ai-agents",
"security",
"policy",
"mcp",
"guardrails",
]
categories = [
"command-line-utilities",
"development-tools",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/crocodile-labs/openmoat"
resolver = "2"
[package.metadata.dist]
auto-includes = false
include = [
"../../README.md",
"../../CHANGELOG.md",
"../../LICENSE-MIT",
"../../LICENSE-APACHE",
]
[[bin]]
name = "moat"
path = "src/main.rs"
[[test]]
name = "e2e"
path = "tests/e2e/main.rs"
[dependencies.anyhow]
version = "1"
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.openmoat-audit]
version = "0.4.0"
[dependencies.openmoat-core]
version = "0.4.0"
[dependencies.openmoat-hosts]
version = "0.4.0"
[dependencies.openmoat-proxy]
version = "0.4.0"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_yaml_ng]
version = "0.10"
[dependencies.sha2]
version = "0.11"
[dependencies.signal-hook]
version = "0.4"
default-features = false
[dependencies.similar]
version = "3"
features = ["text"]
default-features = false
[dependencies.toml_edit]
version = "0.25"
features = [
"parse",
"display",
]
default-features = false
[dependencies.zeroize]
version = "1"
[dev-dependencies.openmoat-audit]
version = "0.4.0"
features = ["test-support"]
[dev-dependencies.tempfile]
version = "3"
[target.'cfg(target_os = "linux")'.dependencies.landlock]
version = "0.4"
[target.'cfg(target_os = "linux")'.dependencies.libc]
version = "0.2"
[target.'cfg(target_os = "linux")'.dependencies.seccompiler]
version = "0.5"
[lints.clippy]
allow_attributes = "warn"
allow_attributes_without_reason = "warn"
cognitive_complexity = "warn"
dbg_macro = "warn"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
todo = "warn"
unimplemented = "warn"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_debug_implementations = "warn"
unsafe_code = "forbid"