Actual-sync CLAUDE.md

Actual-sync CLAUDE.md is an instructions file for Claude Code from agigante80/Actual-sync. It costs 7,792 tokens per session, scanned A, original, MIT.

A repository guide for working on Actual-sync, a self-hosted Node.js service that copies bank transactions to Actual Budget servers. It lists commands for tests, coverage, test selection, file watching, and unused-code checks.

In plain words
What is it for?
Use it when changing Actual-sync code, running all or selected tests, checking coverage, or checking for unused files and exports.
Why use it?
It gives a coding assistant the project's known commands and workflow instead of making it guess how to validate changes.

Instructions file for Claude Code

Written for Claude Code: PreToolUse hook event. Also seen: reads .claude/ paths; mentions CLAUDE.md; mentions Claude Code.

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/agigante80/actual-sync/claude-md
Clone the repo
git clone --depth 1 https://github.com/agigante80/Actual-sync

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for Actual-sync CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/agigante80/actual-sync/claude-md.svg)](https://agentmods.dev/instructions/agigante80/actual-sync/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/agigante80/actual-sync/claude-md"><img src="https://agentmods.dev/badge/instructions/agigante80/actual-sync/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 7,792 This file is loaded in full into every session.
When invoked 7,792 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.07792 $0.07792
Opus 5 $0.03896 $0.03896
Sonnet 5 $0.01558 $0.01558
Haiku 4.5 $0.00779 $0.00779

Measured yesterday against content hash 13c365509236, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

Actual-sync CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 440 lines

How it starts

The opening of the file, as written. The whole thing — 440 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

Actual-sync is a self-hosted Node.js service that automates bank transaction synchronization for Actual Budget servers. It supports multiple budget instances, encrypted budgets, scheduling, multi-channel notifications, and a web dashboard with Prometheus metrics.

Commands

# Install git hooks (run once after cloning — also runs automatically via npm install)
git config core.hooksPath .githooks
# This installs a pre-push hook that runs npm test --coverage --ci before every push.

# Run all tests
npm test

# Run a single test file
npm test -- configLoader.test.js

# Run tests matching a name pattern
npm test -- --testNamePattern="should validate configuration"

# Watch mode for a specific file
npm run test:watch -- syncService.test.js

# Generate coverage report
npm run test:coverage

# Check for dead code (unused files/exports) with knip
npm run dead:check     # blocking (exit 1 on findings); CI runs this in the lint job
npm run knip           # report-only (always exit 0); for local diffing

# Report config that is written here but NOT YET IN EFFECT, because GitHub reads
# it only from the default branch (#204). Report-only, always exits 0.
# CI runs this in the lint job too (#211), so this is a convenience.
npm run drift:check

# Mutation testing — the verification bar here. Reintroduces each shipped
# defect one at a time and asserts the suite FAILS. Not in CI (it runs the
# whole suite once per mutation); run it before a release and after any
# change the catalog covers.
npm run test:mutation                       # all of them, full suite each
npm run test:mutation -- --fast             # only each mutation's hinted test file
npm run test:mutation -- --ticket '#177'    # one ticket's mutations
npm run test:mutation -- --list             # what is covered, without running anything
npm run test:mutation -- --recover          # restore a file after a hard kill

# Start the scheduled sync service
npm start

# Force immediate sync (all servers)
npm run sync

# Sync a specific server
npm run sync -- --server "ServerName"

# Validate config against schema
npm run validate-config

# List discovered bank accounts
npm run list-accounts

# View sync history
npm run history

# Regenerate docs/screenshots/* (Puppeteer, dev-only) and README metric badges
npm run screenshots
npm run badges:generate

# Bump version (updates VERSION + package.json + package-lock.json in sync;
# aborts if local version is behind the latest released tag). For a patch
# release you do not need this (the auto-release patch-bumps). Run it on
# `development` only to cut a MINOR or MAJOR release, which the auto-release
# then publishes as-is (see Git Workflow).
npm run version:bump -- minor   # or: patch / major

Read the full file on GitHub · 440 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 440 lines · 7,792 tokens per session scan A 13c365509236

Subscribe to this mod's changes

Actual-sync CLAUDE.md is an instructions file published in the GitHub repository agigante80/Actual-sync (12 stars, last pushed 2d ago), licensed MIT. It adds 7,792 tokens to every session, about $0.0390 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.