← All MCP servers
MCP server
SysKnife
mcp:lacs-project/sysknife
Administers Linux via typed, approval-gated actions with an Ed25519-signed audit trail.
Verdict
Not analyzed
Indexed from the registries, but not analyzed yet. Lineage and listings below are current.
Package advisories 4
Known vulnerabilities and malicious-package reports (OSV) that reach the versions of the packages it installs or runs.
Deserialization of Untrusted Data in PyYAML
No version pinned, and the newest release may be affected · fixed in 5.2 · CONTRIBUTING.md:130
Improper Input Validation in PyYAML
No version pinned, and the newest release may be affected · fixed in 5.3.1 · CONTRIBUTING.md:130
Improper Input Validation in PyYAML
No version pinned, and the newest release may be affected · fixed in 5.4 · CONTRIBUTING.md:130
PyYAML insecurely deserializes YAML strings leading to arbitrary code execution
No version pinned, and the newest release may be affected · fixed in 5.1 · CONTRIBUTING.md:130
Execution chain 500
What it calls, runs, installs, reads and writes, with the line that does it.
Environment variables 150
_
tests/e2e/run-stories.sh:168 · read
_
tests/e2e/run-stories.sh:169 · read
_
tests/e2e/run-stories.sh:172 · read
_
tests/e2e/run-stories.sh:179 · read
_
tests/e2e/run-stories.sh:202 · read
_
tests/e2e/run-stories.sh:203 · read
_
tests/e2e/run-stories.sh:204 · read
_
tests/e2e/run-stories.sh:205 · read
_
tests/e2e/run-stories.sh:206 · read
_
tests/e2e/run-stories.sh:209 · read
_
tests/e2e/run-stories.sh:214 · read
_
tests/e2e/run-stories.sh:216 · read
_
tests/e2e/run-stories.sh:221 · read
_
tests/e2e/run-stories.sh:222 · read
_
tests/e2e/run-stories.sh:223 · read
_
tests/e2e/run-stories.sh:224 · read
_
tests/e2e/run-stories.sh:226 · read
_
tests/e2e/run-stories.sh:228 · read
_
tests/e2e/run-stories.sh:447 · read
*
*
packaging/sysknife-firewall-state:43 · passthrough
<dynamic>
packages/setup/index.js:624 · read
<dynamic>
packages/setup/index.js:975 · read
<dynamic>
ANTHROPIC_API_KEY
tests/e2e/dev-stories.sh:118 · read
ANTHROPIC_API_KEY
ANTHROPIC_API_KEY
tests/e2e/provision.sh:106 · read
ANTHROPIC_API_KEY
tests/e2e/run-stories.sh:76 · read
API_KEY_VARS
CARGO_BIN
CRATES_IO_CURL
CRATES_IO_POLL_INTERVAL
CRATES_IO_POLL_TIMEOUT
CRATES_IO_SLEEP
DEEPSEEK_API_KEY
tests/e2e/dev-stories.sh:126 · read
DEEPSEEK_API_KEY
DEEPSEEK_API_KEY
tests/e2e/run-stories.sh:82 · read
DURATIONS
tests/e2e/dev-stories.sh:319 · read
DURATIONS
DURATIONS
DURATIONS
DURATIONS
DURATIONS
tests/e2e/run-stories.sh:367 · read
DURATIONS
tests/e2e/run-stories.sh:374 · read
DURATIONS
tests/e2e/run-stories.sh:404 · read
DURATIONS
tests/e2e/run-stories.sh:471 · read
EXEC_NAMES
EXEC_NAMES
GEMINI_API_KEY
tests/e2e/dev-stories.sh:122 · read
GEMINI_API_KEY
GEMINI_API_KEY
tests/e2e/provision.sh:106 · read
GEMINI_API_KEY
tests/e2e/run-stories.sh:78 · read
GROQ_API_KEY
tests/e2e/dev-stories.sh:124 · read
GROQ_API_KEY
GROQ_API_KEY
tests/e2e/run-stories.sh:80 · read
GUEST_ENV_FILE
GUEST_ENV_FILE
ID
tests/e2e/run-stories.sh:600 · read
MESSAGES
tests/e2e/dev-stories.sh:320 · read
MESSAGES
MESSAGES
tests/e2e/run-stories.sh:472 · read
MISTRAL_API_KEY
tests/e2e/dev-stories.sh:128 · read
MISTRAL_API_KEY
MISTRAL_API_KEY
tests/e2e/run-stories.sh:84 · read
OPENAI_API_KEY
OPENAI_API_KEY
tests/e2e/provision.sh:106 · read
OPENAI_API_KEY
tests/e2e/run-stories.sh:74 · read
PATH
RESULTS
tests/e2e/dev-stories.sh:318 · read
RESULTS
RESULTS
tests/e2e/run-stories.sh:470 · read
RESULTS
tests/e2e/run-stories.sh:609 · read
SHELL
STORY_FAMILY
tests/e2e/run-stories.sh:238 · read
STORY_FAMILY
tests/e2e/run-stories.sh:259 · read
STORY_FAMILY
tests/e2e/run-stories.sh:268 · read
STORY_NAMES
tests/e2e/dev-stories.sh:230 · read
STORY_NAMES
tests/e2e/dev-stories.sh:317 · read
STORY_NAMES
tests/e2e/run-stories.sh:238 · read
STORY_NAMES
tests/e2e/run-stories.sh:329 · read
STORY_NAMES
tests/e2e/run-stories.sh:469 · read
STORY_NAMES
tests/e2e/run-stories.sh:609 · read
SYSKNIFE_BINARY
SYSKNIFE_CASSETTE
tests/e2e/run-stories.sh:126 · read
SYSKNIFE_CASSETTE
tests/e2e/run-stories.sh:127 · read
SYSKNIFE_CASSETTE
tests/e2e/run-stories.sh:435 · read
SYSKNIFE_CASSETTE
tests/e2e/run-stories.sh:587 · read
SYSKNIFE_CASSETTE
tests/e2e/run-stories.sh:588 · read
SYSKNIFE_LLM_MODEL
tests/e2e/dev-stories.sh:139 · read
SYSKNIFE_PINNED_SHA256SUMS
SYSKNIFE_RESULTS_JSON
tests/e2e/run-stories.sh:583 · read
SYSKNIFE_RESULTS_JSON
tests/e2e/run-stories.sh:584 · read
SYSKNIFE_RESULTS_JSON
tests/e2e/run-stories.sh:613 · read
SYSKNIFE_RESULTS_JSON
tests/e2e/run-stories.sh:630 · read
SYSKNIFE_RESULTS_JSON
tests/e2e/run-stories.sh:632 · read
SYSKNIFE_ROOT
SYSKNIFE_STORY_DELAY_SECS
tests/e2e/run-stories.sh:433 · read
SYSKNIFE_STORY_TIMEOUT
tests/e2e/dev-stories.sh:204 · read
SYSKNIFE_STORY_TIMEOUT
SYSKNIFE_STORY_TIMEOUT
tests/e2e/run-stories.sh:141 · read
SYSKNIFE_TEST_MODEL
SYSKNIFE_TEST_MODEL
SYSKNIFE_TEST_MODEL
tests/e2e/run-stories.sh:102 · read
SYSKNIFE_TEST_MODEL
tests/e2e/run-stories.sh:103 · read
SYSKNIFE_VM_CPUS
tests/e2e/atomic-vm.sh:210 · read
SYSKNIFE_VM_DIR
tests/e2e/atomic-vm.sh:59 · read
SYSKNIFE_VM_DISK
tests/e2e/atomic-vm.sh:208 · read
SYSKNIFE_VM_MEM
tests/e2e/atomic-vm.sh:209 · read
SYSKNIFE_VM_RELEASE
tests/e2e/atomic-vm.sh:56 · read
SYSKNIFE_VM_SSH_KEY
tests/e2e/atomic-vm.sh:106 · read
SYSKNIFE_VM_SSH_KEY
tests/e2e/ubuntu-vm.sh:86 · read
SYSKNIFE_VM_USER
tests/e2e/atomic-vm.sh:60 · read
UBUNTU_CLOUD_IMG_URL
tests/e2e/ubuntu-vm.sh:223 · read
UBUNTU_CLOUD_IMG_URL
tests/e2e/ubuntu-vm.sh:224 · read
UBUNTU_CLOUD_IMG_URL
tests/e2e/ubuntu-vm.sh:231 · read
UBUNTU_CLOUD_IMG_URL
tests/e2e/ubuntu-vm.sh:232 · read
UBUNTU_VM_BASE_IMAGE
tests/e2e/ubuntu-vm.sh:70 · read
UBUNTU_VM_CPUS
tests/e2e/ubuntu-vm.sh:63 · read
UBUNTU_VM_DIR
tests/e2e/ubuntu-vm.sh:71 · read
UBUNTU_VM_DISK
tests/e2e/ubuntu-vm.sh:64 · read
UBUNTU_VM_IMAGE_CACHE
tests/e2e/ubuntu-vm.sh:69 · read
UBUNTU_VM_MEM
tests/e2e/ubuntu-vm.sh:62 · read
UBUNTU_VM_SSH_PORT
tests/e2e/ubuntu-vm.sh:67 · read
UBUNTU_VM_USER
tests/e2e/ubuntu-vm.sh:68 · read
UPTIME
tests/e2e/ubuntu-vm.sh:359 · read
VERSION
VERSION
VERSION
VERSION
VERSION
VERSION
VERSION
VERSION_ID
tests/e2e/run-stories.sh:598 · read
XAI_API_KEY
tests/e2e/dev-stories.sh:130 · read
XAI_API_KEY
XAI_API_KEY
tests/e2e/run-stories.sh:86 · read
XDG_BIN_HOME
XDG_BIN_HOME
XDG_BIN_HOME
XDG_RUNTIME_DIR
packages/setup/index.js:235 · read
XDG_RUNTIME_DIR
XDG_STATE_HOME
Commands run 107
"true && sudo nohup git push origin v9.9.9",
{"nftables":{}}
tests/test_firewall_state.py:86 · via:probe
{}
tests/test_firewall_state.py:86 · via:probe
/sbin/augenrules --load
packaging/sysknife-audit-edit:70 · process
/usr/bin/dd if=/dev/zero of=/proc/self/fd/{…} conv=nocreat,notrunc bs=1M count={…}
packaging/sysknife-mount-edit:359 · process
/usr/bin/env DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a /usr/bin/apt-get install -y unattended-upgrades
/usr/bin/fail2ban-client -t
/usr/bin/fail2ban-client reload
/usr/bin/firewall-cmd --reload
packaging/sysknife-action-steps:214 · via:run
/usr/bin/gpasswd --delete {…} {…}
packaging/sysknife-action-steps:260 · via:run
/usr/bin/mount -t {…} -o {…} {…} /proc/self/fd/{…}
packaging/sysknife-mount-edit:279 · process
/usr/bin/snap install --channel={…} {…}
packaging/sysknife-action-steps:217 · via:run
/usr/bin/snap refresh --hold {…}
packaging/sysknife-action-steps:218 · via:run
/usr/bin/systemctl {…} {…}
packaging/sysknife-action-steps:253 · via:run
/usr/bin/systemctl daemon-reload
/usr/bin/systemctl enable --now {…}
/usr/bin/systemctl reload {…}
packaging/sysknife-sshd-option-edit:107 · process
/usr/bin/systemctl restart rsyslog
packaging/sysknife-log-edit:162 · process
/usr/bin/systemctl restart rsyslog
packaging/sysknife-log-edit:168 · process
/usr/bin/systemd-analyze calendar {…}
packaging/sysknife-scheduled-job-edit:89 · process
/usr/bin/umount {…}
packaging/sysknife-mount-edit:309 · process
/usr/sbin/sshd -t
packaging/sysknife-sshd-option-edit:82 · process
/usr/sbin/swapoff {…}
packaging/sysknife-mount-edit:387 · process
/usr/sbin/swapoff {…}
packaging/sysknife-mount-edit:445 · process
/usr/sbin/sysctl -w -- {…}
packaging/sysknife-sysctl-edit:58 · process
/usr/sbin/update-grub
packaging/sysknife-grub-kargs-edit:282 · process
/usr/sbin/usermod --append --groups {…} {…}
packaging/sysknife-action-steps:258 · via:run
/usr/sbin/usermod {…} {…}
packaging/sysknife-action-steps:241 · via:run
/usr/sbin/visudo -cf {…}
packaging/sysknife-sudoers-edit:154 · process
<dynamic>
packages/setup/install-daemon.js:233 · process
<dynamic>
packages/setup/mcp-launcher.js:51 · process
<dynamic>
packaging/sysknife-action-steps:201 · process
<dynamic>
packaging/sysknife-action-steps:213 · via:run
<dynamic>
packaging/sysknife-action-steps:236 · via:run
<dynamic>
packaging/sysknife-action-steps:271 · process
<dynamic>
packaging/sysknife-fail2ban-ban:100 · process
<dynamic>
packaging/sysknife-firewall-state:42 · process
<dynamic>
packaging/sysknife-log-edit:104 · process
<dynamic>
packaging/sysknife-mount-edit:385 · process
<dynamic>
packaging/sysknife-mount-edit:480 · via:op_unmount
<dynamic>
packaging/sysknife-mount-edit:484 · via:op_addswap
<dynamic>
tests/test_firewall_state.py:21 · via:probe
<dynamic>
tests/test_firewall_state.py:29 · via:probe
<dynamic>
tests/test_firewall_state.py:71 · via:probe
<dynamic>
tests/test_firewall_state.py:77 · via:probe
<dynamic>
tests/test_firewall_state.py:81 · via:probe
<dynamic>
tests/test_firewall_state.py:86 · via:probe
<dynamic>
tests/test_firewall_state.py:87 · via:probe
<dynamic>
tests/test_firewall_state.py:93 · via:probe
baseline="$(python3 -c "
tests/release/public-claims.test.sh:715 · dynamic_code
bash {…} --metadata
scripts/check_evidence_claims.py:281 · process
cargo metadata --offline --format-version 1
scripts/release_versions.py:342 · process
cmd_ssh "cd /home/${VM_USER}/sysknife && sudo bash -c 'set -e; trap \"rm -f ${GUEST_ENV_FILE}\" EXIT; set -a; . ${GUEST_ENV_FILE}; set +a; rm -f ${GUEST_ENV_FILE}; trap - EXIT; exec bash tests/e2e/provision.sh'"
tests/e2e/atomic-vm.sh:337 · dynamic_code
cmd_ssh "cd /home/${VM_USER}/sysknife && sudo bash -c 'set -e; trap \"rm -f ${GUEST_ENV_FILE}\" EXIT; set -a; . ${GUEST_ENV_FILE}; set +a; rm -f ${GUEST_ENV_FILE}; trap - EXIT; exec bash tests/e2e/provision.sh'"
tests/e2e/atomic-vm.sh:337 · sudo
cmd_ssh "cd /home/${VM_USER}/sysknife && sudo bash -c 'set -e; trap \"rm -f ${GUEST_ENV_FILE}\" EXIT; set -a; . ${GUEST_ENV_FILE}; set +a; rm -f ${GUEST_ENV_FILE}; trap - EXIT; exec bash tests/e2e/run-stories.sh${story_args}'"
tests/e2e/atomic-vm.sh:481 · dynamic_code
cmd_ssh "cd /home/${VM_USER}/sysknife && sudo bash -c 'set -e; trap \"rm -f ${GUEST_ENV_FILE}\" EXIT; set -a; . ${GUEST_ENV_FILE}; set +a; rm -f ${GUEST_ENV_FILE}; trap - EXIT; exec bash tests/e2e/run-stories.sh${story_args}'"
tests/e2e/atomic-vm.sh:481 · sudo
cmd_ssh "cd /home/${VM_USER}/sysknife && sudo bash -c 'set -e; trap \"rm -f ${GUEST_ENV_FILE}\" EXIT; set -a; . ${GUEST_ENV_FILE}; set +a; rm -f ${GUEST_ENV_FILE}; trap - EXIT; exec bash tests/e2e/run-stories.sh${story_args}'"
tests/e2e/ubuntu-vm.sh:542 · sudo
cmd_ssh "cd /home/${VM_USER}/sysknife && sudo bash -c 'set -e; trap \"rm -f ${GUEST_ENV_FILE}\" EXIT; set -a; . ${GUEST_ENV_FILE}; set +a; rm -f ${GUEST_ENV_FILE}; trap - EXIT; exec bash tests/e2e/run-stories.sh${story_args}'"
tests/e2e/ubuntu-vm.sh:542 · dynamic_code
cmd_ssh "cd /home/${VM_USER}/sysknife && sudo bash -c 'set -e; trap \"rm -f ${GUEST_ENV_FILE}\" EXIT; set -a; . ${GUEST_ENV_FILE}; set +a; rm -f ${GUEST_ENV_FILE}; trap - EXIT; exec bash tests/e2e/ubuntu-provision.sh'"
tests/e2e/ubuntu-vm.sh:526 · sudo
cmd_ssh "cd /home/${VM_USER}/sysknife && sudo bash -c 'set -e; trap \"rm -f ${GUEST_ENV_FILE}\" EXIT; set -a; . ${GUEST_ENV_FILE}; set +a; rm -f ${GUEST_ENV_FILE}; trap - EXIT; exec bash tests/e2e/ubuntu-provision.sh'"
tests/e2e/ubuntu-vm.sh:526 · dynamic_code
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable || fail "Install Rust"
tests/e2e/provision.sh:89 · pipe_to_shell
curl -fsSL https://ollama.com/install.sh | sh || fail "Ollama install"
tests/e2e/provision.sh:113 · pipe_to_shell
echo " Run stories: cd $REPO_DIR && sudo -E tests/e2e/run-stories.sh"
tests/e2e/provision.sh:307 · sudo
echo " Run stories: cd $REPO_DIR && sudo -E tests/e2e/run-stories.sh"
eval "$old_nullglob"
tests/release/release-rehearsal.test.sh:268 · dynamic_code
eval "val=\${$var:-}"
tests/e2e/atomic-vm.sh:516 · dynamic_code
eval "value=\${$var-}"
tests/e2e/atomic-vm.sh:124 · dynamic_code
eval "value=\${$var-}"
tests/e2e/ubuntu-vm.sh:114 · dynamic_code
firewall-cmd --list-all
packaging/sysknife-firewall-state:95 · via:probe
frontend_count="$(python3 -c "import json,sys; print(json.load(open(sys.argv[1]))['frontend_tests'])" "$repo_root/tests/evidence/workspace-tests.json")"
tests/release/test-baseline-provenance.test.sh:12 · dynamic_code
git ls-files -z
scripts/release_versions.py:210 · process
grep -Fq "| cmd_ssh \"sudo sh -c 'rm -f \${GUEST_ENV_FILE} && umask 077 && cat > \${GUEST_ENV_FILE}'\"" "$harness" || report "$rel does not transfer the environment over SSH stdin into a fresh 0600 file"
tests/e2e/vm-env-secrets.test.sh:32 · dynamic_code
if grep -nE 'cmd_ssh[^#]*sudo *[$"]?\$\{?[A-Za-z_]' "$harness" | grep -vE 'sudo (sh|bash) -c' >/dev/null; then
tests/e2e/vm-env-secrets.test.sh:47 · pipe_to_shell
if node -e "
tests/release/registry-manifest.test.sh:80 · dynamic_code
js_path="$(HOME=/home/testuser node -e "
tests/release/database-path-agreement.test.sh:34 · dynamic_code
loginctl enable-linger
packages/setup/install-daemon.js:376 · process
nc -zU {…}
packages/setup/index.js:184 · process
not json
tests/test_firewall_state.py:86 · via:probe
public (active)
services: ssh
tests/test_firewall_state.py:97 · via:probe
python3 -c 'import json, sys; print("\n".join(p["name"] for p in json.load(sys.stdin)["packages"]))'); then
tests/release/macos-survey-command.test.sh:82 · dynamic_code
runpy.run_path(str(staged_root / "scripts" / "release_versions.py"))
scripts/release_versions.py:280 · dynamic_code
rust_count="$(python3 -c "import json,sys; print(json.load(open(sys.argv[1]))['tests'])" "$repo_root/tests/evidence/workspace-tests.json")"
tests/release/test-baseline-provenance.test.sh:10 · dynamic_code
self.assertIsNone(re.search(r'/(?:sh|bash|dash|runuser)(?:\s|$)', grant), grant)
tests/release/action-steps.test.sh:26 · pipe_to_shell
ssh "${SSH_OPTIONS[@]}" -p "$SSH_PORT" "${VM_USER}@127.0.0.1" 'sudo cat /var/lib/sysknife-e2e/cloud-init-failed; sudo cloud-init status --long || true; sudo journalctl -u cloud-final --no-pager -n 100 || true' >&2
tests/e2e/ubuntu-vm.sh:439 · sudo
ssh "${SSH_OPTIONS[@]}" -p "$SSH_PORT" "${VM_USER}@127.0.0.1" 'sudo cloud-init status --long || true; sudo journalctl -u cloud-final --no-pager -n 100 || true' >&2
tests/e2e/ubuntu-vm.sh:454 · sudo
ssh "${SSH_OPTIONS[@]}" -p "$SSH_PORT" "${VM_USER}@127.0.0.1" 'sudo cloud-init status --long; sudo journalctl -u cloud-final --no-pager -n 100 || true' >&2
tests/e2e/ubuntu-vm.sh:448 · sudo
Status: active
To Action From
tests/test_firewall_state.py:77 · via:probe
Status: inactive
tests/test_firewall_state.py:29 · via:probe
Status: inactive
tests/test_firewall_state.py:71 · via:probe
Status: inactive
tests/test_firewall_state.py:81 · via:probe
Status: inactive
tests/test_firewall_state.py:87 · via:probe
Status: inactive
tests/test_firewall_state.py:97 · via:probe
status="$(curl --retry 3 --silent --show-error --output /dev/null --user-agent 'sysknife-release-preflight/1.0 (https://github.com/lacs-project/sysknife)' --write-out '%{http_code}' "$url")"
scripts/check_registry_versions.sh:13 · dynamic_code
su - "$VM_USER" -c 'curl --proto "=https" --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable' || fail "Install Rust"
tests/e2e/ubuntu-provision.sh:169 · pipe_to_shell
sudo -n nft -j list ruleset
packaging/sysknife-firewall-state:93 · command
sudo -n nft -j list ruleset
packaging/sysknife-firewall-state:93 · via:probe
sudo -n true
packages/setup/install-daemon.js:221 · command
sudo -n true
packages/setup/install-daemon.js:221 · process
sudo -n ufw status verbose
packaging/sysknife-firewall-state:94 · command
sudo -n ufw status verbose
packaging/sysknife-firewall-state:94 · via:probe
sudo install -o root -g root -m 755 {…} {…}
packages/setup/install-binary.js:502 · process
sudo install -o root -g root -m 755 {…} {…}
packages/setup/install-binary.js:502 · command
systemctl
packages/setup/uninstall.js:165 · process
which {…}
packages/setup/index.js:69 · process
which sysknife
packages/setup/install-binary.js:541 · process
which sysknife
packages/setup/install-binary.js:598 · process
which sysknife
packages/setup/mcp-launcher.js:25 · process
Files read 115
--- bootstrapped /etc/passwd ${VM_USER} entry ---
tests/e2e/atomic-vm.sh:452 · sensitive
.claude/*.local.md
packages/setup/index.js:889 · literal
.cursor/mcp.json
packages/setup/index.js:755 · via:mergeMcpServers
.gitignore
packages/setup/index.js:878 · read
.mcp.json
packages/setup/index.js:754 · via:mergeMcpServers
.ssh
packaging/sysknife-action-steps:266 · literal
.ssh
tests/release/action-steps.test.sh:102 · sensitive
.ssh
tests/release/action-steps.test.sh:177 · sensitive
/etc/default/grub
/etc/default/grub
/etc/default/grub.sysknife.bak
/etc/default/grub.sysknife.bak
/etc/fstab
/etc/os-release
packages/setup/index.js:169 · read
/etc/passwd
/etc/passwd
/etc/passwd
/etc/passwd
/etc/passwd
/etc/passwd
/etc/passwd
/etc/passwd
/etc/passwd
tests/release/action-steps.test.sh:72 · sensitive
/etc/rsyslog.d/60-sysknife-forward.conf
packaging/sysknife-log-edit:161 · via:write_validated
/etc/security/faillock.conf
/etc/shadow
/etc/shadow
tests/release/log-edit.test.sh:37 · sensitive
/etc/shadow
tests/release/log-edit.test.sh:97 · sensitive
/etc/ssh/sshd_config.d/60-sysknife-{…}
/etc/sudoers.d
packaging/sysknife-sudoers-edit:35 · literal
/etc/sudoers.d
tests/e2e/ubuntu-provision.sh:233 · sensitive
/etc/sysctl.d/60-sysknife.conf
/home/{test_user}/.ssh/authorized_keys
/home/{username}/.ssh/authorized_keys
/home/${VM_USER}/.ssh
tests/e2e/atomic-vm.sh:437 · sensitive
/home/${VM_USER}/.ssh
tests/e2e/atomic-vm.sh:439 · sensitive
/home/${VM_USER}/.ssh
tests/e2e/atomic-vm.sh:442 · sensitive
/home/${VM_USER}/.ssh/authorized_keys
tests/e2e/atomic-vm.sh:438 · sensitive
/home/${VM_USER}/.ssh/authorized_keys
tests/e2e/atomic-vm.sh:440 · sensitive
/home/${VM_USER}/.ssh/authorized_keys
tests/e2e/atomic-vm.sh:443 · sensitive
/home/lacsdev/.ssh
tests/e2e/provision.sh:260 · sensitive
/proc/swaps
/root/.ssh/authorized_keys
/root/.ssh/authorized_keys
tests/release/log-edit.test.sh:40 · sensitive
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
packaging/sysknife-action-steps:266 · via:edit_key
<dynamic>
<dynamic>
<dynamic>
packaging/sysknife-log-edit:137 · via:write_validated
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
scripts/release_versions.py:108 · via:package_version
<dynamic>
scripts/release_versions.py:109 · via:internal_pins
<dynamic>
<dynamic>
scripts/release_versions.py:117 · via:package_version
<dynamic>
scripts/release_versions.py:117 · via:package_name
<dynamic>
<dynamic>
<dynamic>
scripts/release_versions.py:186 · via:internal_pins
<dynamic>
<dynamic>
<dynamic>
scripts/release_versions.py:289 · via:package_version
<dynamic>
<dynamic>
scripts/release_versions.py:307 · via:internal_pins
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
~/.codex/config.toml
packages/setup/index.js:844 · sensitive
${SYSKNIFE_VM_SSH_KEY:-$HOME/.ssh/sysknife-vm}
tests/e2e/atomic-vm.sh:106 · sensitive
${SYSKNIFE_VM_SSH_KEY:-$HOME/.ssh/sysknife-vm}
tests/e2e/ubuntu-vm.sh:86 · sensitive
$LACSDEV_SSH_DIR/authorized_keys
tests/e2e/provision.sh:265 · sensitive
$LACSDEV_SSH_DIR/authorized_keys
tests/e2e/provision.sh:268 · sensitive
AGENTS.md
packages/setup/index.js:862 · read
authorized_keys
authorized_keys
authorized_keys
authorized_keys
authorized_keys
authorized_keys
authorized_keys
authorized_keys
authorized_keys
packaging/sysknife-action-steps:266 · literal
authorized_keys
tests/release/action-steps.test.sh:102 · sensitive
authorized_keys
tests/release/action-steps.test.sh:151 · sensitive
authorized_keys
tests/release/action-steps.test.sh:204 · sensitive
authorized_keys exceeds size limit
packaging/sysknife-action-steps:162 · literal
authorized_keys updated, fingerprint: SHA256:abc
cannot read /etc/passwd: {e}
cannot read /etc/passwd: {e}
op_logrotate did NOT refuse '/etc/shadow
tests/release/log-edit.test.sh:98 · sensitive
op_logrotate exited 0 on '/etc/shadow
tests/release/log-edit.test.sh:101 · sensitive
who can read /etc/passwd
crates/sysknife-brain/src/prefs.rs:504 · literal
Files written 128
tests/e2e/ubuntu-vm.sh:565 · write
.*?
.*?
.claude
packages/setup/index.js:771 · write
.cursor
packages/setup/index.js:800 · write
[--date
scripts/bump_version.sh:19 · write
{…}
packages/setup/install-binary.js:502 · command
}
tests/e2e/dev-stories.sh:139 · write
}
tests/e2e/ubuntu-provision.sh:49 · write
}',
/d
/etc/apt/apt.conf.d/20auto-upgrades
/etc/apt/preferences.d
/etc/default/grub
/etc/default/grub
/etc/default/grub
/etc/default/grub.sysknife.bak
/etc/fstab
/etc/group
/etc/rsyslog.d/60-sysknife-forward.conf
packaging/sysknife-log-edit:167 · write
/etc/security/faillock.conf
packaging/sysknife-pam-edit:124 · via:atomic_write
/etc/security/pwquality.conf.d/60-sysknife.conf
packaging/sysknife-pam-edit:90 · via:atomic_write
/etc/ssh/sshd_config.d
/etc/ssh/sshd_config.d/60-sysknife-{…}
/etc/ssh/sshd_config.d/60-sysknife-{…}
/etc/ssh/sshd_config.d/60-sysknife-{…}
/etc/subgid
tests/e2e/provision.sh:258 · write
/etc/subgid
/etc/subuid
tests/e2e/provision.sh:255 · write
/etc/subuid
/etc/sysctl.d/60-sysknife.conf
/g,
/home/testuser
/tmp/group
tests/e2e/atomic-vm.sh:416 · write
/tmp/group
tests/e2e/atomic-vm.sh:417 · write
/tmp/passwd
tests/e2e/atomic-vm.sh:403 · write
/tmp/passwd
tests/e2e/atomic-vm.sh:404 · write
/tmp/selinux-config
tests/e2e/atomic-vm.sh:432 · write
/tmp/shadow
tests/e2e/atomic-vm.sh:410 · write
/tmp/shadow
tests/e2e/atomic-vm.sh:411 · write
/usr/lib/sysknife/action-steps
/usr/lib/sysknife/apt-pin-edit
/usr/lib/sysknife/audit-edit
/usr/lib/sysknife/fail2ban-ban
/usr/lib/sysknife/fail2ban-jail-edit
/usr/lib/sysknife/grub-kargs-edit
/usr/lib/sysknife/log-edit
/usr/lib/sysknife/mount-edit
/usr/lib/sysknife/pam-edit
/usr/lib/sysknife/scheduled-job-edit
/usr/lib/sysknife/sshd-option-edit
/usr/lib/sysknife/sudoers-edit
/usr/lib/sysknife/sysctl-edit
/usr/lib/sysknife/unattended-upgrades-edit
/var/lib/ollama
tests/e2e/provision.sh:124 · write
\${GUEST_ENV_FILE}'\
\$state_dir/cloud-init-done
tests/e2e/ubuntu-vm.sh:352 · write
\$state_dir/cloud-init-failed
tests/e2e/ubuntu-vm.sh:312 · write
\n
%s/%s
%s\n
assets/demo/mcp-flow-mock.sh:95 · write
%s\n
scripts/ci-local.sh:128 · write
%s\n
scripts/ci-local.sh:244 · write
%s%s\n
assets/demo/mcp-flow-mock.sh:39 · write
%sopen
<dynamic>
packages/setup/index.js:783 · write
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
packages/setup/install-binary.js:755 · via:writeBinary
<dynamic>
packages/setup/install-binary.js:757 · via:writeBinary
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
packages/setup/uninstall.js:112 · write
<dynamic>
packages/setup/uninstall.js:113 · write
<dynamic>
packages/setup/uninstall.js:142 · write
<dynamic>
packages/setup/uninstall.js:143 · write
<dynamic>
packages/setup/uninstall.js:155 · write
<dynamic>
packages/setup/uninstall.js:177 · write
<dynamic>
packages/setup/uninstall.js:178 · write
<dynamic>
packages/setup/uninstall.js:222 · via:removePath
<dynamic>
packages/setup/uninstall.js:241 · via:removePath
<dynamic>
packages/setup/uninstall.js:251 · via:removePath
<dynamic>
<dynamic>
<dynamic>
<dynamic>
packaging/sysknife-audit-edit:48 · write
<dynamic>
packaging/sysknife-audit-edit:53 · write
<dynamic>
packaging/sysknife-audit-edit:54 · write
<dynamic>
packaging/sysknife-audit-edit:57 · write
<dynamic>
packaging/sysknife-audit-edit:84 · via:atomic_write
<dynamic>
packaging/sysknife-audit-edit:93 · write
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
packaging/sysknife-fail2ban-jail-edit:99 · via:atomic_write
<dynamic>
packaging/sysknife-fail2ban-jail-edit:110 · via:atomic_write
<dynamic>
<dynamic>
packaging/sysknife-log-edit:76 · write
<dynamic>
packaging/sysknife-log-edit:81 · write
<dynamic>
packaging/sysknife-log-edit:82 · write
<dynamic>
packaging/sysknife-log-edit:85 · write
<dynamic>
packaging/sysknife-log-edit:103 · via:atomic_write
<dynamic>
packaging/sysknife-log-edit:109 · via:atomic_write
<dynamic>
packaging/sysknife-log-edit:111 · write
<dynamic>
packaging/sysknife-log-edit:145 · write
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
<dynamic>
Linked repositories 21
GitHub repositories it links to or installs from, and whether their names can be taken over.
amazonlinux/amazon-linux-2023
url · not tracked
chalk/ansi-styles
url · not tracked
charmbracelet/vhs
url · not tracked
fb55/entities
url · not tracked
gitleaks/gitleaks
url · not tracked
hashgraph-online/awesome-codex-plugins
url · not tracked
inikulin/parse5
url · not tracked
lacs-project/specification
url · not tracked
linuxmint/linuxmint
url · not tracked
modelcontextprotocol/registry
url · not tracked
mozilla/diversity
url · not tracked
nektos/act
url · not tracked
nodejs/release
url · not tracked
openai/codex
url · not tracked
pop-os/pop
url · not tracked
pre-commit/pre-commit-hooks
url · not tracked
quickemu-project/quickemu
url · not tracked
rust-lang/crates.io-index
url · not tracked
rust-lang/mdbook
url · not tracked
tommilligan/mdbook-admonish
url · not tracked
vitejs/vite
url · not tracked