{"id":50717055,"url":"https://github.com/manzil-infinity180/aflock-tui","last_synced_at":"2026-06-09T19:30:22.533Z","repository":{"id":349199818,"uuid":"1201441782","full_name":"manzil-infinity180/aflock-tui","owner":"manzil-infinity180","description":"Terminal UI for inspecting aflock sessions — browse sessions, decode DSSE attestations \u0026 JWTs, replay Claude Code sessions against policies, live-watch agent sessions. Built with   Bubbletea","archived":false,"fork":false,"pushed_at":"2026-05-07T12:54:24.000Z","size":4321,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-07T14:45:21.536Z","etag":null,"topics":["aflock","aflock-tui","agent","claude","claude-code"],"latest_commit_sha":null,"homepage":"https://manzil-infinity180.github.io/aflock-tui/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manzil-infinity180.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-04T17:24:11.000Z","updated_at":"2026-04-05T02:45:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/manzil-infinity180/aflock-tui","commit_stats":null,"previous_names":["manzil-infinity180/aflock-tui"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/manzil-infinity180/aflock-tui","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manzil-infinity180%2Faflock-tui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manzil-infinity180%2Faflock-tui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manzil-infinity180%2Faflock-tui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manzil-infinity180%2Faflock-tui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manzil-infinity180","download_url":"https://codeload.github.com/manzil-infinity180/aflock-tui/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manzil-infinity180%2Faflock-tui/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34123169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-09T02:00:06.510Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aflock","aflock-tui","agent","claude","claude-code"],"created_at":"2026-06-09T19:30:20.851Z","updated_at":"2026-06-09T19:30:22.527Z","avatar_url":"https://github.com/manzil-infinity180.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aflock-tui\n\nTerminal UI for inspecting [aflock](https://github.com/aflock-ai/aflock) sessions — browse sessions, decode attestations, view JWTs, replay sessions against policies, and watch live agent sessions.\n\nBuilt with Go + [Bubbletea](https://github.com/charmbracelet/bubbletea).\n\nhttps://github.com/user-attachments/assets/c101b123-afb3-4bb5-840d-e201d6054836\n\n## Install\n\n```bash\ngo install github.com/aflock-ai/aflock-tui@latest\n```\n\nOr build from source:\n\n```bash\ngit clone https://github.com/aflock-ai/aflock-tui.git\ncd aflock-tui\ngo build -o aflock-tui .\n```\n\n## Usage\n\n### Session Browser (default)\n\n```bash\naflock-tui\n```\n\nBrowse all aflock sessions from `~/.aflock/sessions/`. Navigate with `j/k`, press `Enter` to inspect.\n\n**What you can see:**\n- **Inspect tab** — WHO (model, binary, identity hash), WHAT (tool calls, decisions), WHEN (timestamps, cost, tokens), PROOF (attestation count, JWT)\n- **Actions tab** — chronological list of every policy decision (ALLOW/DENY) with reasons\n- **Policy tab** — the full policy that governed the session\n- **State tab** — raw `state.json`\n- **Attestations** — decode DSSE envelopes, view in-toto statements, raw payloads\n- **JWT** — decoded header, claims, SPIFFE ID, expiry\n\n### Replay\n\n```bash\naflock-tui replay \u003csession.jsonl\u003e \u003cpolicy.aflock\u003e\n```\n\nReplay a recorded Claude Code session against any aflock policy. Each tool call is evaluated and shown with ALLOW/DENY/ASK decisions.\n\nUses `aflock replay --format json` under the hood (single subprocess call), falling back to per-action hook evaluation if the CLI doesn't support replay.\n\nPress `s` for the summary dashboard — tool breakdown, decision timeline, deny list.\n\n### Watch (Live Tail)\n\n```bash\naflock-tui watch \u003csession.jsonl\u003e \u003cpolicy.aflock\u003e\n```\n\nLive-tail a Claude Code session as the agent runs. New tool calls appear in real-time with policy decisions. Useful for:\n- Policy development — see if your policy is too strict or too permissive as the agent works\n- Debugging — see exactly which tool call got blocked and why\n- Demos — show policy enforcement happening in real-time\n\nRun this in one terminal, Claude Code in another. The TUI polls the `.jsonl` file every 500ms and evaluates new actions.\n\n## Keyboard Shortcuts\n\n### Session Browser\n\n| Key | Action |\n|-----|--------|\n| `j/k` or arrows | Navigate sessions |\n| `Enter` | Inspect selected session |\n| `Tab` | Switch tabs (Inspect/Actions/Policy/State) |\n| `a` | View attestations |\n| `t` | View JWT token |\n| `/` | Filter sessions |\n| `c` | Copy content to clipboard |\n| `p` | Copy path to clipboard |\n| `o` | Open in Finder |\n| `d` | Delete session |\n| `q` | Quit |\n\n### Replay\n\n| Key | Action |\n|-----|--------|\n| `j/k` or arrows | Navigate actions |\n| `Enter` | Expand action details |\n| `s` | Summary dashboard |\n| `c` | Copy report to clipboard |\n| `Esc` | Back to table / quit |\n| `q` | Quit |\n\n### Watch\n\n| Key | Action |\n|-----|--------|\n| `j/k` or arrows | Navigate actions |\n| `Enter` | Expand action details |\n| `Esc` | Back to table |\n| `q` | Quit |\n\n## Requirements\n\n- **Go 1.23+** to build\n- **aflock** binary in PATH or at a known location (for replay/watch modes)\n  ```bash\n  # Build aflock\n  cd /path/to/aflock\n  go build -o /usr/local/bin/aflock ./cmd/aflock/\n  ```\n\n## Finding Session Files\n\n```bash\n# aflock sessions (for the browser)\nls ~/.aflock/sessions/\n\n# Claude Code sessions (for replay/watch)\nls -lt ~/.claude/projects/*/*.jsonl | head -5\n```\n\n## Examples\n\n```bash\n# Browse sessions\naflock-tui\n\n# Replay a session against a strict policy\naflock-tui replay ~/.claude/projects/my-project/abc123.jsonl ./strict.aflock\n\n# Watch a live session\n# Terminal 1: start Claude Code in your project\n# Terminal 2:\naflock-tui watch $(ls -t ~/.claude/projects/my-project/*.jsonl | head -1) .aflock\n```\n\n## Related\n\n- [aflock](https://github.com/aflock-ai/aflock) — Cryptographically signed policies for constrained AI agent execution\n- [aflock-replay](https://github.com/manzil-infinity180/aflock-replay) — Browser-based replay UI (WebAssembly)\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanzil-infinity180%2Faflock-tui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanzil-infinity180%2Faflock-tui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanzil-infinity180%2Faflock-tui/lists"}