
Product
Microsoft Teams Notifications Are Now Available in Socket
Socket can now send alerts and supply chain attack notifications to Microsoft Teams, with filters that route the right updates to each channel.
Local flight recorder, live map, replay, and timelapse for AI agents working on WordPress.
The local flight recorder for AI agents working on WordPress.

Agents already operate WordPress sites. Aphelion records every move into an append-only trail on your machine, rendered three ways: a real-time map of the work, a replay of any moment, and an audit trail that proves what actually changed.
What makes the record trustworthy:
--integrity) that makes tampering detectable. The live board, replay, and
timelapse all render this one file, so there is no second history to diverge.127.0.0.1, there is no account
and no telemetry, and no recording is ever deleted for you.aphelion mcp -- <server> passes agent
traffic through byte for byte while recording what they declare: tool names and
argument keys, never values, content, or credentials.npm install --global aphelion
cd /path/to/your-project
aphelion --open
The command prints the local board URL and trail path. Keep it running while an agent works.
Project-local works too: npm install --save-dev aphelion && npx aphelion --open.
agent hooks ─┐
repo watcher ├─> append-only trail ─> live board
WordPress ───┤ ├─> replay
WP-CLI/MCP ──┘ └─> timelapse
Every surface is a projection of one JSONL trail — no view owns a second history. The board speaks three nouns: places (durable WordPress objects, the only things with a position), flows (channels carrying an actor's work), and changes (timed claim-plus-confirmation moments in a place's history). The full contract lives in the topology language; evidence stays structural — block and attribute names, never content, option values, credentials, or Ability payloads.
Repository observation needs no WordPress installation. Site context is progressive:
| Level | Install cost | What becomes visible |
|---|---|---|
| Repo watcher and agent hooks | None | Files, declared actions, plan progress, presence |
Generic MCP stdio tap — aphelion mcp -- <server command...> | None; wraps an existing local MCP server | MCP presence, tool-call names, structural argument keys, and declared completion without values or result bodies |
| Read-only WP-CLI sidecar | A local WP-CLI / Docker / SSH command | Runtime baseline, drift fingerprints, site identity |
| Audit mu-plugin | One PHP file in wp-content/mu-plugins/ | WordPress hook effects: posts, blocks, settings, terms, menus, users, comments, plugins |
| Plugin adapter | Optional | Product semantics beside the raw effect; Accelerate included |
cp node_modules/aphelion/src/mu-plugin/aphelion-audit.php \
/path/to/wordpress/wp-content/mu-plugins/aphelion-audit.php
aphelion \
--site http://localhost:8081 \
--audit-log /path/to/wordpress/wp-content/aphelion/audit.jsonl \
--wp-command '["docker","exec","wordpress","wp","--allow-root","--path=/var/www/html"]' \
--open
The mu-plugin has no settings screen and no remote transport (PHP 7.4+; WordPress-aware features target 6.9+). Full channel, transport, redaction, and timing contract: WordPress observation surfaces.
The normal command stays foreground and explicit. For a workstation or long-lived local
stack, an OS user service can start Aphelion at login — deliberately not enabled by default:
background observation should be a conscious choice. See
Running Aphelion in the background for launchd/systemd --user setup, health checks, and removal.
| Command | When to use it |
|---|---|
aphelion [target] | Observe a repository; defaults to the current directory. |
aphelion serve [target] | The explicit form of the default command. |
aphelion sessions [target] | List recorded sessions and their trail paths. |
aphelion timelapse <trail.jsonl> | Render a standalone timelapse from an existing trail. |
aphelion hook | Relay one agent-hook payload from stdin to the local daemon. |
aphelion mcp -- <server command...> | Transparently observe an existing MCP stdio server. |
| Option | Meaning |
|---|---|
--open | Open the loopback board after startup. |
--port <number> | Preferred loopback port; falls forward if occupied. |
--idle-timeout <minutes> | End a session after this much non-heartbeat inactivity (default 30). |
--site <url> | Record a site target instead of a repository target. |
--audit-log <path> | Tail the site-local audit mu-plugin JSONL. |
--debug-log <path> | Tail a WordPress debug log with capture-boundary redaction. |
--wp-command <json> | Read-only WP-CLI baseline from a JSON string array; no shell evaluation. |
--integrity | Add SHA-256 prev links to new trail events. |
--no-watch | Disable repository filesystem watching. |
--output <path> | Timelapse .html or .mp4 output path. |
Agent hooks pipe straight in — printf '%s\n' "$AGENT_HOOK_JSON" | aphelion hook — and MCP
calls stay declared requests, related to observed WordPress effects by request ID without
ever merging the records.
Aphelion is also a typed, zero-dependency ESM library:
import { createTrailWriter, projectEvents, renderTimelapse, startDaemon } from 'aphelion'
The package exports the trail reader/writer, reducer, replay index, daemon, sidecar, WordPress scanner, Accelerate adapter, and timelapse renderer, with type declarations.
The trail is the audit record: append-only, owned by you, and durable enough to answer "what did the agent actually do" months after the session — replay is the forensic view of the same file the live board projected.
| Property | Contract |
|---|---|
| Project trails | <repo>/.aphelion/trail/<session>.jsonl |
| Site trails | ~/.aphelion/trails/<site-slug>/<session>.jsonl |
| File mode / flush | 0600, flushed every event |
| Retention | Never deleted automatically |
| Network | Board and ingest bind to 127.0.0.1 |
| Telemetry / accounts | None |
Trails can still contain local paths, object titles, actor names, and action summaries — treat them as operational records and review before sharing. See Security.
Documentation index · Topology language · Observation surfaces · Trail format · Background service · Releasing · Changelog
npm install
npm run verify
The verification gate builds the board, checks JS and PHP syntax, validates docs, runs the unit and desktop/mobile browser suites, audits package exports, and installs the dry-run tarball into a blank consumer.
Aphelion adapts the declared-versus-observed model from
sodiumsun/agenttrail (MIT, vendored at 41454d4);
substantially adapted files retain provenance comments.
MIT. See LICENSE.
FAQs
Local flight recorder, live map, replay, and timelapse for AI agents working on WordPress.
We found that aphelion demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Socket can now send alerts and supply chain attack notifications to Microsoft Teams, with filters that route the right updates to each channel.

Security News
pnpm 12 rewrites the package manager in Rust, cutting install times by up to 90% while preserving pnpm 11 workflows and lockfiles.

Security News
Socket CTO Ahmad Nassri joins AppSec leaders at Black Hat to discuss active malware, package manager risks, and software supply chain defense.