More AI Tools I'm using
More AI Tools
I wanted to share a few (more) AI tools that have become essential parts of my daily workflow. As I mentioned in my April checkpoint and My LLM Workflow posts, I’m still heavily leveraging Claude Code, but I’ve expanded my toolkit with some useful additions. I’ve been meaning to blog more actively, but as we all know, life has a way of catching up fast.
Consider this my attempt to get back on track!
Claude Hooks
Claude Code hooks are user-defined shell commands that execute at various points in Claude Code’s lifecycle. Hooks provide deterministic control over Claude Code’s behavior, ensuring certain actions always happen rather than relying on the LLM to choose to run them. 1
Since I often have multiple Claude instances running on different projects, getting notified when tasks complete has become crucial for my productivity (and to call me back from weeding the yard!).
I’ve set up notification hooks using ntfy.sh running on my Tailscale network.
Here’s a sample configuration I use in my .claude/settings.json
user file:
...
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "curl -H \"Title: Claude Code\" -d \"Task completed for $(git remote get-url origin 2>/dev/null | sed 's/.*[/:]\\([^/]*\\)\\/\\([^/]*\\)$/\\1\\/\\2/' || echo 'unknown') ($(pwd)) on branch $(git branch --show-current 2>/dev/null || echo 'no git') 🎆\" $NTFY_SERVER_URL/cc"
}
]
}
]
Beyond notifications, I also leverage project-specific hooks for automated linting.
In my .claude/settings.local.json
project files, I run linting commands automatically after file modifications:
...
"PostToolUse": [
{
"matcher": "Write|Edit|MultiEdit",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path | select(endswith(\".py\"))' | grep -q . && just lint-fix"
}
]
}
]
Claude Code Router
Given the current economics of AI model providers, I’m always exploring cost-effective alternatives for when the bills come due.
A few months ago, I discovered Claude Code Router, a clever project that enables using non-Anthropic models with the Claude Code interface.
It works remarkably well, though I primarily use it when my max subscription is throttled or when I can match simpler tasks to smaller, more efficient models.
Here’s my current configuration (stored at ~/.claude-code-router/config.json
) using Open Router.
{
"LOG": true,
"Providers": [
{
"name": "openrouter",
"api_base_url": "https://openrouter.ai/api/v1/chat/completions",
"api_key": "<openrouter-api-key-here>",
"models": [
// "anthropic/claude-sonnet-4",
"qwen/qwen3-coder",
"moonshotai/kimi-k2",
"deepseek/deepseek-r1-0528",
"google/gemini-2.5-flash-lite-preview-06-17"
],
"transformer": { "use": ["openrouter"] }
}
],
"Router": {
// "default": "openrouter,anthropic/claude-sonnet-4",
"default": "qwen/qwen3-coder",
"background": "openrouter,moonshotai/kimi-k2",
"think": "openrouter,deepseek/deepseek-r1-0528",
"longContext": "openrouter,google/gemini-2.5-flash-lite-preview-06-17"
}
}
Additional services
Open Router for model flexibility
Speaking of Open Router, it’s become my go-to platform for experimenting with new models. Their unified interface provides access to multiple providers with competitive pricing and latency optimizations. Would encourage you to review their privacy settings.
Deep Research as search replacement
I’ve increasingly replaced traditional Google searches with Deep Research, particularly Google’s Gemini implementation. Based on my own usage, it’s clear to me how this trend could substantially impact traditional search traffic patterns.
Things I’m doubling-down on
I briefly mentioned this in last year’s post about my AI tools, but I can’t imagine working with my Obsidian notes without LLM integration anymore. The combination has transformed how I organize and is integral in how I interact with my knowledge base. I’m currently using mcp-obsidian, and I’ve noticed increased discussion about this approach in the Twittersphere. Highly recommended. While we’re on the topic, I’d also suggest migrating to Bases if you haven’t - the migration took a bit, but the performance improvement has been substantial.
Current experiments
I’ve been exploring Open Code, and if you haven’t tried it yet, I’d encourage giving it a spin. Their shared session implementation is particularly interesting, and I’m surprised similar approaches aren’t more prevalent amongst the various CLI tools.
Looking Forward
The tooling landscape continues to evolve, and I find myself constantly re-evaluating my workflow as new options emerge. My current plan is to stick with Claude Code while maintaining flexibility with models.
- What’s your current workflow(s), and how are you leveraging these tools?
- Are there any new tools that you’re playing with that I should check out?
I’d love to hear about your LLM toolbelt.
Hope to see y’all next time!
This post was written by yours truly; spellchecking, grammar-policing and hook completed by Claude Desktop.
Definition accessed from https://docs.anthropic.com/en/docs/claude-code/hooks-guide on 2025-07-28 ↩︎
- Tagged:
- Technology,
- Tools,
- Ai,
- Claude-Code-Router,
- Openorouter