New script that launches Claude Code (via claude-profile) inside a detached
tmux session with --remote-control enabled, in a project's directory, named
after the project (Title-cased, auto-incrementing #N on collision). Lets a
session be started for later attach over VPN or control from the Claude app.
Spec-first per repo conventions: specs/claude-tmux.spec.md, script, and
tests/test-claude-tmux.sh (18 dryrun assertions, all passing).
Claude-Session: https://claude.ai/code/session_014oa7T7z1h5n34vu8vX9zGT
MiniMax moved their Anthropic-compatible API from api.minimax.io to
api.minimaxi.chat. The old endpoint returns 404; the new one returns 200.
Key is unchanged and still valid. Native api.minimax.io endpoints (e.g.
subscription check) are unaffected.
Claude-Session: https://claude.ai/code/session_01XtWRazqRbMnMRa4iV3zbVx
Passing combined context inline as a CLI arg hits Linux ARG_MAX (~2 MB)
when project CONTEXT.md or MEMORY.md are large. Three changes:
1. Write combined_context to a mktemp file and pass via
--append-system-prompt-file instead of the inline --append-system-prompt arg.
2. Drop exec in favour of a subprocess call so the EXIT trap fires
after claude exits, properly resetting the WezTerm theme and cleaning
up the temp file. (With exec, bash is replaced immediately and traps
never fire on success — WezTerm reset was silently broken.)
3. Warn when context exceeds 150 KB and show context size (in KB) on
the launch line and in dryrun output, so oversized CONTEXT.md files
are visible before they become a crash.
Provider selection phase removed; Anthropic driver→model_id is now
hardcoded in the script and non-Anthropic profiles supply provider.env
(MODEL_ID, ANTHROPIC_BASE_URL, ANTHROPIC_API_KEY_FILE).
Test suite baseline changes 58 → 41 assertions: the 17 dropped
assertions covered the removed provider-yaml selection phase, not
retained behaviour.
Includes refactor-derived memory: decisions (provider architecture,
driver enforcement via --model), bash gotchas (read -rp under set -e,
never eval user config), process lessons.
MiniMax changed from category_remains[text_generation] with count fields
to model_remains[general] with remaining_percent fields. Now tries v2
first (100 - remaining_percent), falls back to v1 count-based calculation.
Probes Anthropic OAuth and MiniMax subscription usage and displays
percentage consumed for 5-hour and 7-day windows with colour-coded output.
Ported probe logic from agent-runtimes/scripts/ralph_code.
Add a warning when ANTHROPIC_BASE_URL would be set but the active profile's
.credentials.json would override ANTHROPIC_API_KEY with subscription OAuth,
routing requests to Anthropic instead of the intended provider.
Fixes the MiniMax routing issue: use --profile minimax (~/.claude-minimax/,
no stored credentials) for non-Anthropic providers.
Update presets example to use profile: minimax for quick-minimax preset.
63 tests passing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Introduces provider files (`data/claude-profile/providers/*.yaml`) that
bundle model ID, API base URL, API key source, and extra env vars. Phase 2.5
(provider selection) added between mode selection and launch, with a default
derived from the mode's driver field so existing Anthropic usage is unchanged.
Ships 5 providers: anthropic-haiku/sonnet/opus/opus-1m and minimax-sonnet.
MiniMax token decrypted from agent-runtimes SOPS env, stored at
~/.claude-secrets/minimax-auth-token. Adding new providers = one YAML file,
no script changes.
58 dryrun tests passing (up from 37).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Polls /api/v1/repos/<owner>/<repo>/releases and matches each tag_name
against a shell-style glob (e.g. v1.2.3.*). Default 600s timeout, 5s
interval, both overridable. Exits 0 with the matched tag on stdout,
1 on timeout, 2 on usage error, 3 on terminal API error (401/403/404).
Intended to run in the background of a Claude Code session while CI
produces the release.
Includes spec and 42-assertion test using a PATH-shadowed mock curl.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Computes MAJOR.MINOR.PATCH.BUILD from NEW_MAJOR/NEW_MINOR/NEW_PATCH
whole-line tokens in commit messages since the last release tag.
Non-main branches get a BRANCH-SHORTSHA suffix and never release.
Maintains VERSION.md, writes $GITHUB_OUTPUT, and optionally creates
a Gitea release via API.
Includes spec, 67-assertion test, usage guide (docs/semver-ci.md),
and a drop-in Gitea Actions workflow template.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- context: claude-profile-modes updated to reflect current state (statusline
and session-start auto-select done; next step is real launch test)
- FUTURE.md: remove two completed items (status-line, CLAUDE.md picker)
- README: add missing scripts (check-skills, gen-secret, mp3-to-mp4,
split-wezterm, sync-repos) to scripts table
- session log 2026-04-12.003747.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- claude-profile: phase 1-3 picker (profile, mode, launch) with preset support,
dryrun, WezTerm theming, and --append-system-prompt mode body injection
- 5 mode files (chat/quick/deep/hybrid/orch) with YAML frontmatter + prose body;
new escalates_to field drives statusline →Opus arrow for deep and hybrid
- statusline.sh reads CLAUDE_CONFIG_DIR/active-mode.env to show
[Sonnet→Opus] deep · topic format when launched via claude-profile
- Root CLAUDE.md session-start: auto-selects project from cwd or CLAUDE_PROJECT
in active-mode.env, skipping the interactive picker when context is clear
- Spec, tests (37 assertions, 9 test files, all passing), context docs, and
preset example included
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Uses ffmpeg to generate an H.264/AAC video from an MP3 file with a
centred title overlay. Supports optional background image (title at
bottom) or solid colour (title centred). Includes spec, dryrun support,
and 10 tests.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds gotchas-wezterm and updates gotchas-bash from recent reflections.
Prunes old reflected log. Updates MEMORY.md index.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove ^, +, ~, :, @ from the allowed charset. The ^ character breaks
SQLAlchemy DATABASE_URL parsing, + becomes space in URL query strings,
: and @ are URL delimiters. The remaining charset (A-Za-z0-9._-) is
safe in URLs, database connection strings, YAML, JSON, and shell
without any encoding.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Outputs cryptographically random strings using only characters safe
for unquoted use in bash, YAML, and JSON: [A-Za-z0-9._+\-:@^~]
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Splits the current pane into evenly-sized grid using wezterm cli
split-pane. Supports optional command per pane, dryrun mode, and
auto-detects native or Flatpak WezTerm CLI.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
claude-profile now:
- Syncs all repos (git pull --ff-only) before starting a session
- Emits WezTerm user-var escape sequences to trigger profile themes
- Resets terminal theme on session exit via trap
New script sync-repos pulls latest for all git repos under ~/dev/claude
with --dryrun support and color status output.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Memory files for decisions, bash gotchas, and process lessons.
Updated MEMORY.md index and README.md with new scripts.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Utility for switching between Claude Code skill profiles by
managing the ~/.claude/skills symlink target.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Scans all projects for session logs not yet processed by /reflect-logs,
using .reflection-state.json to track reflected status.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Converts markdown files to DOCX with optional reference doc styling.
Supports front matter stripping and custom output paths.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Compares installed skill symlinks against the source directory,
reporting missing, stale, and orphan entries.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Checks for common issues that silently break skills — non-ASCII
frontmatter, $VAR in paths, uncovered binaries in allowed-tools, etc.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Scans a directory tree for git repos and produces a concise report
showing uncommitted changes (with +/- character counts) and
ahead/behind status per remote. Supports --dryrun to preview
discovered repos without running checks.
Includes OpenSpec, implementation, and 26-assertion test suite.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Spec-driven utility script collection with dryrun support and
automated testing. Includes project docs, test runner, and
directory structure.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>