My personal AI Agent devtools/dev UX set.
Codex Home Guard is a native Rust PreToolUse hook
that blocks catastrophic filesystem commands before Codex runs them. It guards
filesystem root, the user's home, common system roots, credential directories,
and raw disks while allowing normal cleanup inside repositories.
curl --proto '=https' --tlsv1.2 -fsSL \
https://raw.githubusercontent.com/ardasevinc/agent-devtools/main/codex/hooks/home-guard/install.sh |
shPrebuilt releases cover Apple Silicon and Intel macOS, x86_64 and arm64 Linux, and x86_64 Windows. See the Home Guard README for hook configuration, source builds, exact policy, and limitations.
Custom skills for Claude Code that extend its capabilities.
| Skill | Description | Trigger Examples |
|---|---|---|
| web-animation-design | Focused animations.dev guidance for web motion, easing, timing, performance, and reduced-motion support. | "this animation feels janky", "which easing should I use", "review this modal transition" |
| interview | Socratic interviewer for requirements elicitation. Probes blind spots, challenges assumptions, synthesizes understanding. | /interview auth system, "help me think through this feature", vague requirements |
| lazy-skill | On-demand skill loader to reduce routing ambiguity. Browse and load skills from ~/.agents/lazy-skills/ only when explicitly needed. |
/lazy-skill, /lazy-skill docker |
| mattermost-cli | Fetch and search Mattermost messages. Auto-redacts secrets for safe LLM processing. Maintained in its own repo. | "check my messages", "what did alice say about X", /mattermost |
# Skills from this repo
bunx skills@latest add ardasevinc/agent-devtools --skill <skill-name>
# mattermost-cli is maintained separately
bunx skills@latest add ardasevinc/mattermost-cli --skill mattermost-cli
bun i -g mattermost-cli # also requires the CLI tool (npm/pnpm also work)Custom statusline for Claude Code CLI showing hostname, directory, git status, context usage, model, and time.
macbook │ anthropics/claude-code │ ⎇ main*↑1 │ ctx:52% │ opus-4.5 │ 20260130 16:00
Requires Bun runtime.
# Symlink to Claude config
ln -sf /path/to/agent-devtools/claudecode/statusline.ts ~/.claude/statusline.ts
# Add to ~/.claude/settings.json{
"statusLine": {
"type": "command",
"command": "bun ~/.claude/statusline.ts",
"padding": 0
}
}- Hostname: Machine name
- Directory: Last 2 path components
- Git: Branch, worktree (⎇), dirty (*), ahead (↑n), behind (↓n)
- Context: Usage percentage from session files
- Model: Current Claude model (opus-4.5, sonnet-4, etc.)
- Time: yyyymmdd HH:MM format
Interactive fzf picker to browse and resume Claude Code sessions by their task lists. Launches Claude with CLAUDE_CODE_TASK_LIST_ID set, enabling task sharing/resumption across sessions.
agent-devtools (3 tasks) - 2h ago │ ✓ Add skills catalog to README
vyvo-app (12 tasks) - 1d ago │ → Implement auth flow
mattermost-cli (5 tasks) - 3d ago │ ○ Add rate limiting
# Add to PATH
ln -sf /path/to/agent-devtools/claudecode/claude-tasks.ts ~/.local/bin/claude-tasks
# Make executable
chmod +x ~/.local/bin/claude-tasksclaude-tasks # Pick a task list, launches claude
claude-tasks --resume # Pass flags through to claude- Project detection: Resolves project path from session files
- Task preview: Shows tasks with status (✓ done, → in progress, ○ pending)
- Recency sorting: Most recent sessions first
- Seamless launch: Opens Claude in the correct directory with task context
Reduce semantic overload by loading skills on demand instead of exposing every skill name and description to the base agent. Skills in ~/.agents/lazy-skills/ are only read when you invoke /lazy-skill.
This is different from progressive disclosure. Even when an agent only sees each installed skill's name, description, and path, a large always-visible skill list creates routing ambiguity. The lazy skill is an anti-router: keep the default skill surface small, then explicitly summon heavy or niche workflows when they matter.
# Create the central lazy skills directory
mkdir -p ~/.agents/lazy-skills
# Install the meta-skill
bunx skills@latest add ardasevinc/agent-devtools --skill lazy-skill- Add the skill to
lazy-skills.manifest.tomland sync it into~/.agents/lazy-skills/. - Edit the durable index in this repo:
skills/lazy-skill/SKILL.md. - Commit and push this repo, then refresh the installed meta-skill:
bunx skills@latest update lazy-skill -g -yAvoid treating the installed copy (~/.agents/skills/lazy-skill/SKILL.md; ~/.claude/skills/lazy-skill/SKILL.md on legacy installs) as the source of truth. Direct installed-copy edits are local only and will be overwritten by updates.
Index entries look like this:
## Index
- **skillname**: keyword1, keyword2 - "Brief description"
- **reponame** [collection]: keywords - "Description" # for skill reposKeep the index sparse. It should work like a card catalog, not a second always-loaded skill registry with long trigger rules.
Lazy skill runtime copies are generated artifacts. Source provenance and update state live in:
lazy-skills.manifest.tomllazy-skills.lock.jsonscripts/sync-lazy-skills.tsdocs/lazy-skills-covenant.md
Check current state:
bun scripts/sync-lazy-skills.ts statusPreview upstream updates:
bun scripts/sync-lazy-skills.ts --dry-run --all
bun scripts/sync-lazy-skills.ts --dry-run --only honoApply managed updates:
bun scripts/sync-lazy-skills.ts --allThe runtime directory ~/.agents/lazy-skills/ should stay .git-free. Source
mirrors live under ~/.agents/lazy-skill-sources/.
~/.agents/lazy-skills/
├── stripe.md # single file
├── dokploy/ # single skill repo
│ └── SKILL.md
└── threejs-skills/ # skill collection (multiple skills)
├── README.md # shows available skills
└── skills/
├── threejs-fundamentals/
│ └── SKILL.md
└── ...
- Single skills: auto-detects
<name>.mdor<name>/SKILL.md - Collections: mark with
[collection]in index, reads README first
This repo also stores Arda-specific lazy skills under lazy-skills/ardasevinc/. Sync that folder to ~/.agents/lazy-skills/ardasevinc/ and add this sparse index entry to the installed lazy-skill:
- **ardasevinc** [collection]: dashboard, ux, ops, research - Arda's custom lazy skills, including dense dashboard UX review