Ihor Katkov

202 posts

Ihor Katkov banner
Ihor Katkov

Ihor Katkov

@ihor_katkov

Builder and angel investor. Building AI-native products. Author and cofounder of viche: https://t.co/TuQ6vewpQc Documenting the process → https://t.co/RzEZEkUkSy

Amsterdam, The Netherlands Katılım Ağustos 2025
54 Takip Edilen42 Takipçiler
Sabitlenmiş Tweet
Ihor Katkov
Ihor Katkov@ihor_katkov·
@josevalim Instead, we should focus on architecture and system design discussions next to whiteboards. That's what makes a system reliable, that's where knowledge sharing and learning happen nowadays
English
0
0
0
9
Ihor Katkov
Ihor Katkov@ihor_katkov·
@josevalim Unfortunately, yes, social coding is indeed dead in PRs. But I honestly believe, that PR is just not a good place. Look, average feature size is quarduplet. It's technically not feasible anymore to do reviews in PR and I believe we should not to.
English
1
0
0
46
José Valim
José Valim@josevalim·
When someone replies to a pull request comment with obvious AI content, it genuinely saddens me. PRs used to be a place to teach/learn/discuss software but now there’s nobody on the other side. If I wanted an agent response, I’d ask mine. Social coding is dead.
English
63
60
552
17.2K
Moshe
Moshe@Mosescreates·
I'm going all in on Hermes (@NousResearch, @Teknium1) as my entire agent and coding stack. Six profiles. One shared self-hosted memory store. Zero hosted-coder dependencies. The fleet: - pmax-mousa — my own WhatsApp + Email + Google Workspace agent - pmax-tarek — my co-founder's Telegram + Email agent - pmax-dareen — our content creator's WhatsApp assistant (LIVE on real client chats) - pmax-content — background content ops - pmax-ops-observer — daily health reports - pmax-coder — my primary coding CLI, no hosted coder, no gateway The model dial — this is the part I'm most excited about: pmax-coder runs on GLM-5.1 native via the Z.AI Coding Plan (@Zai_org, quarterly $45). Direct to api.z.ai, no middleman, no OpenRouter tax. GLM-5.1 published the exact thing I needed — a frontier coder at a flat price I can plan around. I've spent the last three days heads-down just getting the system running. Not tweaking it. Not optimizing it. Getting it to stand up end-to-end without a single load-bearing piece silently falling over. Six profiles, one memory store, two hosts, a dozen services, launchd, Tailscale, native provider pinning, patch re-application, ghost-process recovery, bridge port collisions, FTPS quirks, CI cycles, Qdrant lock contention, Happy Eyeballs hangs — every one of them a real bug I hit and fixed before I could move on. The three days are the story. The five gateway profiles (pmax-mousa, pmax-tarek, pmax-dareen, pmax-content, pmax-ops-observer) all run on qwen/qwen3.6-plus via OpenRouter native Alibaba routing (@Alibaba_Qwen, @OpenRouterAI). I pinned native-only with a strict provider.only patch so nothing silently falls through to a more expensive lane. Offline fallback everywhere is gemma-4-31b-it-4bit served by oMLX on the Mac Studio. If OpenRouter or Z.AI goes sideways mid-conversation, every profile transparently fails over to local MLX inference and the user never notices. Swapping models is one YAML line. The real unlock: unified self-hosted memory. Every Hermes profile reads and writes one mem0 store on my MacBook (Qdrant + Ollama nomic-embed-text embeddings, zero cloud). Claude Code (@claudeai, @AnthropicAI) is wired to auto-broadcast every session turn into the same store via a Stop hook. The direction of flow is Claude writes, Hermes listens. Anything I decide in a Claude Code session is visible to the WhatsApp agents on my very next message. Nothing gets re-explained. Ever. Two-host architecture over Tailscale: MacBook (100.x.x.x) is the service layer. It runs mem0-server on 7437, task_server v1.1.3 on 7439, the guru-code router cache on 7450, the content-review webhook on 7438, all the Claude Code hooks, daily backup cron, and the mem CLI. Mac Studio M4 Max (100.x.x.x) is the agent layer. It runs Hermes v2026.4.13-118, all six profile gateways under launchd, the Hermes dashboard on 9119, the WhatsApp and Telegram bridges, and the Google Workspace OAuth session. Both hosts are pinned to IPv4 over the tailnet because macOS Happy Eyeballs was randomly hanging on IPv6 tailnet paths — one flag on every curl and ssh killed a whole class of flakiness. Huge credit to @brian_cheong — his push on idempotency-on-retries directly shaped task_server v1.1.3 (Idempotency-Key header on every write path), pipeline.py deterministic run_id dedup, and the guru-code router's response cache. Without that, retried agent actions would silently double-fire — a tool call would hit twice, a message would get sent twice, a file would get written twice. Whole classes of bugs I'll never write now. (btw I knew nothing abt idempotency bar — thanks dude) What else ships with the stack: Daily Qdrant and task_server backups with a 14-day rotation, plus a weekly full Hermes zip. Ghost-process immunity on launchd restarts (a startup_guard script kills any zombie api.py holding the Qdrant lock before mem0-server boots). A native-provider pinning patch that wires provider_routing.allow_fallbacks straight through to OpenRouter. A secret redactor that runs on every Claude Code turn end so OpenRouter keys, Anthropic keys, GitHub PATs, and Bearer tokens can never leak into transcripts. A mem audit command that scans the memory store itself for leaked patterns. And a `fleet` one-shot status command I can run from any terminal to get a color-coded snapshot of every service on both hosts plus GitHub Actions status plus the Hermes patch inventory. Over these three days I also pulled 98 commits of upstream Hermes in two passes (70 + 28) without losing a single custom patch. An update-check cron inventories every local patch weekly so nothing regresses silently. Upgrades are safe. That's the invariant I wanted and I finally have it. None of this is a custom AI platform. It's Hermes doing what Hermes does, plus a few surgical patches I kept small enough to re-apply on every upstream pull. The whole philosophy is minimal lock-in: use the upstream as much as possible, patch only the load-bearing seams, never fork. The point isn't that Hermes beats every other coder tool today. The point is it's mine. I own the model dial, the memory store, the tools, the hooks, the backup policy, the security posture, the failover behavior. When something breaks I fix it. When I want to upgrade I upgrade. When I want to swap models I swap models. No middleman. No platform. No rug pull risk. Reports from the field to follow.
Moshe tweet media
English
37
58
914
84.1K
Ihor Katkov
Ihor Katkov@ihor_katkov·
@lawrencecchen Check this out! You can team up claude code with opencode (openclaw, pi, throw your agent here) while running them in the web! I'm showcasing how my opencode runs a team of claude code in cmux, while communicating with other agents in mac native terminal.
English
2
0
2
273
Lawrence Chen
Lawrence Chen@lawrencecchen·
Introducing cmux Claude Code Agent Teams: `cmux claude-teams --dangerously-skip-permissions` Teammates/subagents spawn as native cmux pane splits. They stack vertically in a right column and auto-equalize as agents spawn and exit. `cmux claude-teams` automatically sets CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 and shims tmux on PATH with cmux's tmux-compat layer, so you don't need to update your Claude config. All arguments forward to Claude Code, and it works over cmux SSH too. Out in the latest version of cmux (0.63.x).
English
99
122
1.3K
158K
Ihor Katkov
Ihor Katkov@ihor_katkov·
Which Pokémon did you get in Claude Code? Type `/buddy`. Mine is Epic Pickle
Ihor Katkov tweet media
English
0
0
0
49
ZhenAI
ZhenAI@zhenyaThinks·
I am boring...
ZhenAI tweet media
English
2
0
1
29
Ihor Katkov
Ihor Katkov@ihor_katkov·
@michael_chomsky @steipete Very keen to dive in. As per your long-term concern, we've created an open registry and real-time messaging layer for any agents in the wild, so they can discover each other and talk in real-time. You don't need to match the SDK, it just works. github.com/viche-ai/viche
English
0
0
1
63
Michael
Michael@michael_chomsky·
For those that don't understand what @steipete just announced: OpenClaw is becoming an MCP server. I run a cloud OpenClaw company. Let me explain why this is a very good thing for OpenClaw. Before this, connecting to OpenClaw programmatically was pain. Custom WebSocket glue code, self-signed TLS, health check polling, chat relay bridging. At StartClaw we wrote thousands of lines of this stuff. It was brutal. Now OpenClaw just exposes 9 MCP tools. messages_read, messages_send, events_poll, conversations_list, etc. You add it to your MCP config and you're done. That's literally it. Here's what that means in practice: Before, OpenClaw was the brain AND the messaging layer. Now these things are separate. Claude Code, Codex, Cursor, whatever, any of them can be the brain instead of OpenClaw's Pi wrapper harness. You can use the harness, or just let OpenClaw handle the 50+ messaging platforms. So instead of: >you tell Claude Code something >Claude Code talks to your OpenClaw agent via A2A >your OpenClaw agent sends a Slack message Now: >you tell Claude Code something >Claude Code calls messages_send >Slack message sent One hop instead of three. But it gets cooler: if your OpenClaw gateway has Slack connected, ANY MCP client you authorize can use it. Your Claude Code session, a Codex agent, a cron job. They all share the same channels. Agents can message each other through your Slack. For cloud providers like us this means there's a lot of improvements we can now make. The hard part was never the AI. It's keeping 50+ messaging adapters working, managing OAuth tokens, handling Telegram bot pools, dealing with rate limits. That's what we actually sell now. The AI part is commoditized. What I'm watching: >PR #50396: HTTP/SSE transport. Right now MCP is stdio-only (local). Once this ships, remote connections work and cloud-hosted endpoints become real. This is the big one. >PR #54957: persistent MCP server lifecycle. Connections stay alive across agent runs. >PR #49182: cryptographic signing for MCP transport. Need this for prod. For StartClaw this probably means I may or may not be able to delete ~20k lines of custom bridging code once HTTP transport ships and stabilizes. The provisioner, integration management, VM infra all definitely stay. But what it definitely means is that we can make it way easier for users to connect to their gateway. They can message their OpenClaw agent easily from CC, Codex, ChatGPT, doesn't matter, and their CC, Codex, ChatGPT can now send messages through Telegram/Slack/Discord/whatever. I expect this means far more agent-to-agent collaboration in practice. The thing I'm watching long-term is whether we'll ever get an OpenClaw SDK that matches the Claude Code SDK or adopts it fully. This will be the biggest unlock for applications like StartClaw. In other words this is a very very very big deal and 3x's my faith in OC as a product.
Peter Steinberger 🦞@steipete

The next version of OpenClaw is also an MCP, you can use it instead of Anthropic's message channel MCP to connect to a much wider range of message providers. (I know, this is awkward)

English
91
107
1.4K
271.5K
Ihor Katkov
Ihor Katkov@ihor_katkov·
haha! I'm coming back home from a hackathon where we've built a similar solution, which allows agents to discover other agents (openclaw, claude code, opencode etc) and communicate with them in real-time (WS/channels). It works and works amazingly well. Check this out github.com/viche-ai/viche
English
0
0
1
88
Peter Steinberger 🦞
Peter Steinberger 🦞@steipete·
The next version of OpenClaw is also an MCP, you can use it instead of Anthropic's message channel MCP to connect to a much wider range of message providers. (I know, this is awkward)
English
247
235
4.2K
814.5K
Ihor Katkov
Ihor Katkov@ihor_katkov·
1M context window of Opus is pure marketing. Opus 4.6 becomes horribly stupid after 150k tokens used. I
Ihor Katkov tweet media
English
3
0
4
63
Ihor Katkov
Ihor Katkov@ihor_katkov·
If you haven't added Perplexity as a skill to your AI agent yet, do it now. The quality difference is significant.
Ihor Katkov tweet media
English
0
0
2
43
Ihor Katkov
Ihor Katkov@ihor_katkov·
Who cares about personal data? A friend texted me this morning: "Added Hevy to my OpenClaw instance. Works great." I immediately jumped into it and integrated the same functionality into mine. Spun up an analysis and asked for diagrams. It showed me interesting insights on how to move forward with my workouts. I did an obvious thing - export all the data from Whoop and GymBook for the past 7 years. 30 minutes later, I had a complete picture of my fitness journey from 2019 to 2026: - Body composition shifts across 7 years - Bench/squat /deadlift progression (all three hit PRs in Dec 2025) - Recovery, HRV, sleep - The exact correlation: highest recovery months = new strength records Three apps. Data is scattered everywhere. But when you own your data and have an agent that can work with it, it becomes a gold mine. Not "average user" insights. YOUR insights. Built for exactly how YOUR body works. This is what autonomous agents actually unlock. Not another chatbot. A personal system that knows you and gets smarter the more data you feed it. Want this for yourself? DM me, I'll set you up with your own OpenClaw instance. What data are you sitting on that could enable you to reach your goals faster?
Ihor Katkov tweet media
English
1
0
3
88
Ihor Katkov
Ihor Katkov@ihor_katkov·
@no_niked No, not yet. That was planned campgain against opencode
English
0
0
0
101
dax
dax@thdxr·
opencode 1.3.0 will no longer autoload the claude max plugin we did our best to convince anthropic to support developer choice but they sent lawyers it's your right to access services however you wish but it is also their right to block whoever they want we can't maintain an official plugin so it's been removed from github and marked deprecated on npm appreciate our partners at openai, github and gitlab who are going the other direction and supporting developer freedom
English
270
489
8.9K
1.1M