From actual-budget
Set up Actual Budget credentials — save the server URL and password. Use when the user wants to configure Actual Budget, connect to their instance, or check connection status.
npx claudepluginhub cameri/claude-skills --plugin actual-budgetThis skill is limited to using the following tools:
<objective>
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Migrates code, prompts, and API calls from Claude Sonnet 4.0/4.5 or Opus 4.1 to Opus 4.5, updating model strings on Anthropic, AWS, GCP, Azure platforms.
Compresses source documents into lossless, LLM-optimized distillates preserving all facts and relationships. Use for 'distill documents' or 'create distillate' requests.
<quick_start>
Save credentials: /actual-budget:access ACTUAL_SERVER_URL=https://budget.example.com
Check status: /actual-budget:access (no args)
Guided setup: /actual-budget:access setup
</quick_start>
Credential keys:
ACTUAL_SERVER_URL — base URL of the Actual Budget server (e.g. https://budget.example.com)ACTUAL_PASSWORD — server login password used to authenticateACTUAL_SYNC_ID — budget Sync ID from Settings → Advanced (optional; auto-picks first budget if unset)Migration note: Older credential files may use SERVER_URL, PASSWORD, and SYNC_ID (without the ACTUAL_ prefix). These are still recognized by the skills. When saving new or updated credentials, always use the ACTUAL_ prefixed names.
</context>
~/.claude/channels/actual-budget/${ENV}.env exists./actual-budget:access setup.ACTUAL_SERVER_URL (mask the password), then test the connection:
curl -s -o /dev/null -w "%{http_code}" -X POST "$ACTUAL_SERVER_URL/account/login" \
-H "Content-Type: application/json" \
-d "{\"password\":\"$ACTUAL_PASSWORD\"}"
~/.claude/channels/actual-budget/ matching *.env, stripping .env suffix. Display .env as "(default)".setup — guided setup:
Prompt the user for each credential interactively:
ACTUAL_SERVER_URL — ask for the base URL (no trailing slash)ACTUAL_PASSWORD — ask for the server passwordAfter collecting all values, save and test (same as key=value save below).
KEY=VALUE — save a single credential:
Parse the key and value. Valid keys: ACTUAL_SERVER_URL, ACTUAL_PASSWORD, ACTUAL_SYNC_ID.
Load existing ${ENV}.env if present, update the key, write back, chmod 600, then test connection.
clear — remove all credentials for this environment:
Delete ~/.claude/channels/actual-budget/${ENV}.env and confirm.
clear KEY — remove a single key:
Remove just that key from the ${ENV}.env file.
</workflow>
<credential_storage>
mkdir -p ~/.claude/channels/actual-budget
cat > ~/.claude/channels/actual-budget/${ENV}.env <<'EOF'
ACTUAL_SERVER_URL=<value>
ACTUAL_PASSWORD='<value>'
EOF
chmod 600 ~/.claude/channels/actual-budget/${ENV}.env
The password is single-quoted to prevent shell expansion of special characters ($, #, @, etc.).
</credential_storage>
<security_checklist>
ACTUAL_PASSWORD or auth token — show set/not-set onlychmod 600 the .env file after writingACTUAL_ prefixed key names
</security_checklist><success_criteria>
~/.claude/channels/actual-budget/${ENV}.env with chmod 600token field