Skip to main content

Intercept and approve filesystem-modifying syscalls

Project description

ptrace-approve

Approve a programs actions from the command-line. Remeber choices.

Claude code approval system for the code generated by claude code.

This is ai-generated unreviewed code. I have used it a coouple of times.

Caveats

AI-generated code, unreviewed, slow. This runs python code on every system call so for some use cases is very slow and breaks parallelization, think lots of system calls in parallel threads.

Child processes and not traced (strace -f) (but you approve when the are spawned).

Motivation

I wanted to rub some vibe coded apps over my code and not have it destroy my code.

Alternatives and prior work

This is influenced form a UI perspective by cluade code, where you approve individual commands as claude wishes to run them, optionally adding exceptions. There is a tool called maybe which is a similar idea and has been declared as unmaintained by it's previous maintainer.

ptrace-approve uses ptrace and apparmor does similar things. Apparmor is faster, and can record rules to allow - but not does not have this sort of interactive real time approval. ptrace-approve use the python-pytrace library which does all the fiddly work. This does the last mile of making something useful and doing pattern matching.

Tools like austral can place limits at the module or function level using a type systems.

Installation

pipx install ptrace-approve

Usage

ptrace-approve app

By default all reads are allowed.

Individually approve rules or add patterns. . in patterns does not match ,'s or brackets. Use (.|[.(),]) for the conventional meaning of . in regexps

the abolsute path to app app is found and a default profile is stored for the app based on this path.

ptrace-approve --clear app

Patterns

/regexp/ */pycache/ * does not match forwards slashes "*" - literal ... _ - any argument

Change log

2.0.0 - Change match format

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ptrace_approve-2.1.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ptrace_approve-2.1.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file ptrace_approve-2.1.0.tar.gz.

File metadata

  • Download URL: ptrace_approve-2.1.0.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ptrace_approve-2.1.0.tar.gz
Algorithm Hash digest
SHA256 dd480fa3f589f3a75240990d1c40e054b033519f6ac60e5b491443105822f9a6
MD5 c5d4335f07470b748b3a594873ea41eb
BLAKE2b-256 3122eaacd189d3ff4e770908bdb0391805e8f1a81c278acd1f6b417078313047

See more details on using hashes here.

File details

Details for the file ptrace_approve-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: ptrace_approve-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ptrace_approve-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 24539debbc48803755f15c0eb492a4494f08d701a0e32a1ef40adc45081b4f2d
MD5 1cf01a957b21c4435323c82ad9484718
BLAKE2b-256 b16732ebbe0e8bcbeff48f3c45de87a6f5dbcd3d3f100a941133d0830972967e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page