Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
github: [The-Cloud-Clock-Work]
github: [The-Cloud-Clockwork]
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ permissions:

jobs:
release:
uses: The-Cloud-Clock-Work/.github/.github/workflows/release-reusable.yml@main
uses: The-Cloud-Clockwork/.github/.github/workflows/release-reusable.yml@main
with:
bump: ${{ inputs.bump }}
downstream_workflows: "publish-pypi.yml"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sonar-scan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:

jobs:
sonar:
uses: The-Cloud-Clock-Work/.github/.github/workflows/sonar-reusable.yml@main
uses: The-Cloud-Clockwork/.github/.github/workflows/sonar-reusable.yml@main
with:
python_version: "3.12"
install_command: pip install -e ".[dev,all]"
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,4 @@ This project follows the [Contributor Covenant](CODE_OF_CONDUCT.md). Please be r

## Questions?

Open a [GitHub Discussion](https://github.com/The-Cloud-Clock-Work/agentihooks/discussions) or file an issue.
Open a [GitHub Discussion](https://github.com/The-Cloud-Clockwork/agentihooks/discussions) or file an issue.
30 changes: 15 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# agentihooks

[![Standalone](https://img.shields.io/badge/runs-standalone-brightgreen)](https://the-cloud-clock-work.github.io/agentihooks/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/The-Cloud-Clock-Work/agentihooks/blob/main/LICENSE)
[![CI](https://github.com/The-Cloud-Clock-Work/agentihooks/actions/workflows/ci.yml/badge.svg)](https://github.com/The-Cloud-Clock-Work/agentihooks/actions/workflows/ci.yml)
[![Standalone](https://img.shields.io/badge/runs-standalone-brightgreen)](https://the-cloud-clockwork.github.io/agentihooks/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/The-Cloud-Clockwork/agentihooks/blob/main/LICENSE)
[![CI](https://github.com/The-Cloud-Clockwork/agentihooks/actions/workflows/ci.yml/badge.svg)](https://github.com/The-Cloud-Clockwork/agentihooks/actions/workflows/ci.yml)
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://python.org)
[![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://the-cloud-clock-work.github.io/agentihooks/)
[![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://the-cloud-clockwork.github.io/agentihooks/)

The production harness for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Turn Claude Code into a managed fleet — with smart profiles that shift mid-session, guardrails, context intelligence, and real-time broadcast messaging across every active session.

> **Full documentation:** [the-cloud-clock-work.github.io/agentihooks](https://the-cloud-clock-work.github.io/agentihooks/)
> **Full documentation:** [the-cloud-clockwork.github.io/agentihooks](https://the-cloud-clockwork.github.io/agentihooks/)

---

Expand Down Expand Up @@ -38,7 +38,7 @@ agentihooks init --local --profile infra # per-repo identity
- **Built-in profiles:** `default` (auto mode), `coding` (acceptEdits), `admin` (bypassPermissions)
- **Live rule refresh** — `agentihooks refresh-rules` pushes rule updates into every running Claude session without restart. One-shot per session, session-snapshotted so new sessions don't re-consume.

[Full docs: Identity](https://the-cloud-clock-work.github.io/agentihooks/docs/pillars/identity/)
[Full docs: Identity](https://the-cloud-clockwork.github.io/agentihooks/docs/pillars/identity/)

### Pillar 2: Guardrails — *What keeps them safe*

Expand All @@ -58,7 +58,7 @@ agentihooks init --local --profile infra # per-repo identity
| **Bash output filter** | Truncates verbose output to save tokens |
| **File read dedup** | Blocks redundant re-reads of unchanged files |

[Full docs: Guardrails](https://the-cloud-clock-work.github.io/agentihooks/docs/pillars/guardrails/)
[Full docs: Guardrails](https://the-cloud-clockwork.github.io/agentihooks/docs/pillars/guardrails/)

### Pillar 3: Context Intelligence — *What keeps them sharp*

Expand All @@ -77,7 +77,7 @@ CONTEXT_REFRESH_COMPRESSION=standard # default
CONTEXT_COMPRESSION_SCOPE=all # compress all injections
```

[Full docs: Context Intelligence](https://the-cloud-clock-work.github.io/agentihooks/docs/pillars/context/)
[Full docs: Context Intelligence](https://the-cloud-clockwork.github.io/agentihooks/docs/pillars/context/)

### Pillar 4: Fleet Command — *Talk to your entire fleet*

Expand All @@ -101,7 +101,7 @@ agentihooks broadcast emit "clear all broadcasts"

`emit` is sandboxed: Claude Haiku can **only** run `agentihooks broadcast` commands — all other tools are disallowed.

[Full docs: Fleet Command](https://the-cloud-clock-work.github.io/agentihooks/docs/pillars/fleet-command/)
[Full docs: Fleet Command](https://the-cloud-clockwork.github.io/agentihooks/docs/pillars/fleet-command/)

---

Expand All @@ -110,7 +110,7 @@ agentihooks broadcast emit "clear all broadcasts"
**Requirement:** [uv](https://docs.astral.sh/uv/getting-started/installation/) must be installed.

```bash
git clone https://github.com/The-Cloud-Clock-Work/agentihooks
git clone https://github.com/The-Cloud-Clockwork/agentihooks
cd agentihooks

# 1. Create the dedicated venv and install everything
Expand Down Expand Up @@ -284,7 +284,7 @@ agent calls → overlay_remove("patch-mode")

Back to `anton`. Full autonomy. Image rebuild in parallel. Zero session restart, zero context loss. The base profile's `allowedOverlays` field controls which overlays agents can activate — no escalation to profiles they weren't designed for.

This is a **smart profile system** — agents don't just have identities, they shift between complementary modes like a musician moving between tension and release. [Full docs: Runtime Overlays](https://the-cloud-clock-work.github.io/agentihooks/docs/pillars/overlays/)
This is a **smart profile system** — agents don't just have identities, they shift between complementary modes like a musician moving between tension and release. [Full docs: Runtime Overlays](https://the-cloud-clockwork.github.io/agentihooks/docs/pillars/overlays/)

**Settings profiles (two-axis model):** Control settings independently from persona:

Expand Down Expand Up @@ -335,7 +335,7 @@ All configuration in `.env` files in `~/.agentihooks/`. Key variables:
| `AMYGDALA_ENABLED` | `false` | Active-signal injection (uses `BRAIN_URL` `/signal`). |
| `BRAIN_WRITER_ENABLED` | `false` | POST `/marker` on Stop / SubagentStop. |

Complete table: [Configuration Reference](https://the-cloud-clock-work.github.io/agentihooks/docs/reference/configuration/)
Complete table: [Configuration Reference](https://the-cloud-clockwork.github.io/agentihooks/docs/reference/configuration/)

### Remote brain quickstart

Expand Down Expand Up @@ -390,7 +390,7 @@ machine A machine B
```

Every machine still writes to its **own** `gitfoam/<hostname>/main` branch via
[gitfoam](https://github.com/The-Cloud-Clock-Work/gitfoam) (Rust daemon, 500ms
[gitfoam](https://github.com/The-Cloud-Clockwork/gitfoam) (Rust daemon, 500ms
force-push, built-in secrets scanning). **Consumers read `origin/main` only.**
Promotion from a machine branch to `main` is a PR — `agentihooks memory-sync
propose` opens it via `gh pr create` and optionally auto-merges when clean.
Expand Down Expand Up @@ -480,8 +480,8 @@ agentihooks init

| Project | Description |
|---------|-------------|
| [agenticore](https://github.com/The-Cloud-Clock-Work/agenticore) | Claude Code runner and orchestrator |
| [agentibridge](https://github.com/The-Cloud-Clock-Work/agentibridge) | MCP server for session persistence and remote control |
| [agenticore](https://github.com/The-Cloud-Clockwork/agenticore) | Claude Code runner and orchestrator |
| [agentibridge](https://github.com/The-Cloud-Clockwork/agentibridge) | MCP server for session persistence and remote control |

## License

Expand Down
10 changes: 5 additions & 5 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ title: AgentiHooks
description: >-
Hook system and MCP tool server for Claude Code agents.
Event-driven hooks, 26 MCP tools across 8 categories, profile-based configuration.
url: "https://the-cloud-clock-work.github.io"
url: "https://the-cloud-clockwork.github.io"
baseurl: "/agentihooks"

remote_theme: just-the-docs/just-the-docs@v0.10.0
Expand All @@ -21,19 +21,19 @@ mermaid:
version: "11"

aux_links:
GitHub: "https://github.com/The-Cloud-Clock-Work/agentihooks"
GitHub: "https://github.com/The-Cloud-Clockwork/agentihooks"
aux_links_new_tab: true

gh_edit_link: true
gh_edit_link_text: "Edit this page on GitHub"
gh_edit_repository: "https://github.com/The-Cloud-Clock-Work/agentihooks"
gh_edit_repository: "https://github.com/The-Cloud-Clockwork/agentihooks"
gh_edit_branch: "main"
gh_edit_view_mode: "edit"

footer_content: >-
AgentiHooks is open source under the
<a href="https://github.com/The-Cloud-Clock-Work/agentihooks/blob/main/LICENSE">MIT License</a>.
Maintained by <a href="https://github.com/The-Cloud-Clock-Work">The Cloud Clockwork</a>.
<a href="https://github.com/The-Cloud-Clockwork/agentihooks/blob/main/LICENSE">MIT License</a>.
Maintained by <a href="https://github.com/The-Cloud-Clockwork">The Cloud Clockwork</a>.

back_to_top: true
back_to_top_text: "Back to top"
Expand Down
2 changes: 1 addition & 1 deletion docs/bundles.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ Evaluation order: **deny > ask > allow** (first match wins).

```bash
# 1. Install agentihooks
git clone https://github.com/The-Cloud-Clock-Work/agentihooks
git clone https://github.com/The-Cloud-Clockwork/agentihooks
cd agentihooks
uv venv ~/.agentihooks/.venv
uv pip install --python ~/.agentihooks/.venv/bin/python -e ".[all]"
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ uv --version
## 2. Clone the repository

```bash
git clone https://github.com/The-Cloud-Clock-Work/agentihooks
git clone https://github.com/The-Cloud-Clockwork/agentihooks
cd agentihooks
```

Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/memory-mirror.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Claude Code's native auto-memory lives at `~/.claude/projects/<project-key>/memory/`
and is machine-local. The **memory mirror** feature syncs only those `memory/`
subtrees across your fleet using [gitfoam](https://github.com/The-Cloud-Clock-Work/gitfoam)
subtrees across your fleet using [gitfoam](https://github.com/The-Cloud-Clockwork/gitfoam)
for push (~500ms latency per machine) and a lightweight main-only consumer
on the sync daemon tick for pull (~60s).

Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started/portability.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ Companion env files are auto-sourced by:
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. Clone the repo
git clone https://github.com/The-Cloud-Clock-Work/agentihooks
git clone https://github.com/The-Cloud-Clockwork/agentihooks
cd agentihooks

# 3. Create the venv and install
Expand Down
2 changes: 1 addition & 1 deletion docs/reference/cli-commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ Registered targets are stored in `~/.agentihooks/state.json` under the `targets`

Cross-machine auto-memory sync with PR-gated fleet propagation. Mirrors
**only** `~/.claude/projects/*/memory/` to a private git remote via
[gitfoam](https://github.com/The-Cloud-Clock-Work/gitfoam); each machine
[gitfoam](https://github.com/The-Cloud-Clockwork/gitfoam); each machine
pushes to its own `gitfoam/<hostname>/main` branch, consumers merge from
`origin/main` only, and promotion is a GitHub PR.

Expand Down
14 changes: 7 additions & 7 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ The definitive Claude Code harness — built on four pillars that make your agen
<div class="hero-actions text-center mb-8" markdown="0">
<a href="#install" class="btn btn-primary fs-5 mr-2">Get Started</a>
<a href="{{ site.baseurl }}/docs/cost-management/" class="btn btn-green fs-5 mr-2">Cost Management</a>
<a href="https://github.com/The-Cloud-Clock-Work/agentihooks" class="btn fs-5" target="_blank">View on GitHub</a>
<a href="https://github.com/The-Cloud-Clockwork/agentihooks" class="btn fs-5" target="_blank">View on GitHub</a>
</div>

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/The-Cloud-Clock-Work/agentihooks/blob/main/LICENSE)
[![CI](https://github.com/The-Cloud-Clock-Work/agentihooks/actions/workflows/ci.yml/badge.svg)](https://github.com/The-Cloud-Clock-Work/agentihooks/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/The-Cloud-Clockwork/agentihooks/blob/main/LICENSE)
[![CI](https://github.com/The-Cloud-Clockwork/agentihooks/actions/workflows/ci.yml/badge.svg)](https://github.com/The-Cloud-Clockwork/agentihooks/actions/workflows/ci.yml)
[![Python 3.11+](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://python.org)
{: .text-center .mb-8 }

Expand Down Expand Up @@ -339,12 +339,12 @@ rm -rf ~/.agentihooks

| Project | Description |
|---------|-------------|
| [agenticore](https://github.com/The-Cloud-Clock-Work/agenticore) | Claude Code runner and orchestrator (uses agentihooks) |
| [agentibridge](https://github.com/The-Cloud-Clock-Work/agentibridge) | MCP server for session persistence and remote control |
| [agenticore](https://github.com/The-Cloud-Clockwork/agenticore) | Claude Code runner and orchestrator (uses agentihooks) |
| [agentibridge](https://github.com/The-Cloud-Clockwork/agentibridge) | MCP server for session persistence and remote control |

---

<p align="center">
Built by <a href="https://github.com/The-Cloud-Clock-Work">The Cloud Clockwork</a> &middot;
<a href="https://github.com/The-Cloud-Clock-Work/agentihooks/blob/main/LICENSE">MIT License</a>
Built by <a href="https://github.com/The-Cloud-Clockwork">The Cloud Clockwork</a> &middot;
<a href="https://github.com/The-Cloud-Clockwork/agentihooks/blob/main/LICENSE">MIT License</a>
</p>
6 changes: 3 additions & 3 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -70,9 +70,9 @@ include = ["hooks*", "scripts*", "profiles*"]
"profiles.coding" = ["*.yml", "*.json", ".claude/*.json", ".claude/CLAUDE.md"]

[project.urls]
Homepage = "https://github.com/The-Cloud-Clock-Work/agentihooks"
Repository = "https://github.com/The-Cloud-Clock-Work/agentihooks"
Issues = "https://github.com/The-Cloud-Clock-Work/agentihooks/issues"
Homepage = "https://github.com/The-Cloud-Clockwork/agentihooks"
Repository = "https://github.com/The-Cloud-Clockwork/agentihooks"
Issues = "https://github.com/The-Cloud-Clockwork/agentihooks/issues"

[tool.pytest.ini_options]
testpaths = ["tests"]
Expand Down
4 changes: 2 additions & 2 deletions scripts/install.py
Original file line number Diff line number Diff line change
Expand Up @@ -5392,15 +5392,15 @@ def _require_gitfoam() -> str:
)
print(
" curl -fsSL https://raw.githubusercontent.com/"
"The-Cloud-Clock-Work/gitfoam/main/install.sh | sh",
"The-Cloud-Clockwork/gitfoam/main/install.sh | sh",
file=sys.stderr,
)
print(
" (b) clone gitfoam locally and point GITFOAM_LOCAL_SOURCE at it:",
file=sys.stderr,
)
print(
" git clone git@github.com:The-Cloud-Clock-Work/gitfoam.git ~/dev/gitfoam",
" git clone git@github.com:The-Cloud-Clockwork/gitfoam.git ~/dev/gitfoam",
file=sys.stderr,
)
print(
Expand Down
4 changes: 2 additions & 2 deletions tests/test_memory_mirror_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -511,9 +511,9 @@ def test_remote_slug_ssh(monkeypatch):
monkeypatch.setattr(
mm.config,
"MEMORY_MIRROR_REMOTE",
"git@github.com:The-Cloud-Clock-Work/anton-memory-mirror.git",
"git@github.com:The-Cloud-Clockwork/anton-memory-mirror.git",
)
assert mm._remote_slug() == "The-Cloud-Clock-Work/anton-memory-mirror"
assert mm._remote_slug() == "The-Cloud-Clockwork/anton-memory-mirror"


def test_remote_slug_https(monkeypatch):
Expand Down
Loading