Skip to main content

inscript

Universal agent activity ledger.

When an AI agent works on code, inscript records everything: which project, which files, what changed. Any tool can read ~/.inscript/ for context.

Install

pip install inscript

What it records

~/.inscript/
  active_project              ← which codebase right now
  active_session              ← current session ID
  config.toml                 ← retention policy
  sessions/
    <session-id>/
      meta.json               ← start time, project, status
      touches.jsonl           ← every file read/edit/write
      diffs.jsonl             ← raw changes (Edit old→new, Write content hash)
      summary.json            ← stats written on session end
  overlap/
    <project-hash>.jsonl      ← when 2+ sessions touch the same files

Setup

inscript init    # configure retention, storage, diffs

Then add hooks to ~/.claude/settings.json:

{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [{ "type": "command", "command": "inscript-hook" }]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Read|Edit|Write|Glob|Grep",
        "hooks": [{ "type": "command", "command": "inscript-hook", "async": true }]
      }
    ],
    "Stop": [
      {
        "hooks": [{ "type": "command", "command": "inscript-hook" }]
      }
    ]
  }
}

CLI

inscript              # status: active project + session
inscript log          # activity log for current session
inscript log <id>     # activity log for a specific session
inscript overlap      # show file collisions across sessions
inscript export <id>  # export session as markdown
inscript cleanup      # enforce retention policy
inscript init         # setup wizard

Python API

from inscript_pkg import active_project, active_session, list_sessions

project = active_project()    # Path or None
session = active_session()    # session ID or None
all_sessions = list_sessions()  # [{session_id, start_time, project, status}, ...]

How it works

Three Claude Code hooks write to ~/.inscript/:

  • SessionStart → creates sessions/<id>/meta.json
  • PostToolUse → appends to touches.jsonl and diffs.jsonl
  • Stop → writes summary.json with session stats

Any MCP server, script, or tool can read these files. No coordination needed. The agent doesn't know inscript exists.

Overlap detection

When two Claude Code sessions work on the same project simultaneously, inscript records which files both sessions touch. Run inscript overlap to see collisions.

Metadata

Release files for refocus 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for refocus 0.7.0
File Size Uploaded Provenance
refocus-0.7.0.tar.gz 17.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for refocus 0.7.0
File Interpreter ABI Platform
refocus-0.7.0-py3-none-any.whl Python 3 none any Details

Total release size: 36.6 kB

Release files / refocus-0.7.0.tar.gz

Download URL refocus-0.7.0.tar.gz
Size 17.9 kB
Tags Source
SHA-256 checksum
How to use checksums
dd206dae4b32fd631aa33ea0afd1e69ed0dcea7b270eb829f220bbe3bb5f459e
BLAKE2b-256 checksum
How to use checksums
c73ef37c0c2a6dd98e21de25eb89a36cbef649c6faed9ffb243ec89ba8ca27d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / refocus-0.7.0-py3-none-any.whl

Download URL refocus-0.7.0-py3-none-any.whl
Size 18.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f1d0d078323cd59c0c8b0d990edd51052f8fd8e4448933eef5cc675b2d91b601
BLAKE2b-256 checksum
How to use checksums
89579b49a526eaa0a1f75c0309482e958ec48a0b3208d9a4c00ea6ffe9c27d5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Security for refocus 0.7.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.

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page