The Problem Nobody Talks About
Claude Code changed how developers write software. You describe what you want, and an AI agent edits files, runs commands, creates tests, and commits code. It is, without exaggeration, the most productive coding tool most of us have ever used.
But there is a problem. A big one.
Claude Code is a terminal application. It runs in your shell, on your machine, and it needs you sitting there watching it. Every time it wants to run a shell command, modify a file outside the project, or execute something potentially destructive, it pauses and asks for permission. If you are not at your desk, the agent stops. Work stalls. The session might time out.
This is the reality for anyone who has tried to let Claude Code run overnight on a refactoring task, a large migration, or a test suite fix. You come back in the morning to find it waiting for a single permission prompt that appeared thirty seconds after you walked away.
The Failed Workarounds
We tried everything before building CodePulse. Here is what did not work.
Auto-accept everything
Claude Code has a --dangerously-skip-permissions flag. You can also set permission modes like acceptEdits or bypassPermissions. These let the agent run without asking, but they also mean it can delete files, overwrite configurations, or push broken commits to your repository without any human oversight. For personal side projects, maybe that is acceptable. For production codebases, it is reckless.
Terminal multiplexer watching
We tried keeping a tmux session open on a remote server and checking it from our phone's SSH client. This technically works, but SSH on a phone is a terrible experience. Tiny text, no notification system, and you still have to manually type y or n to respond to prompts. It solves none of the actual problems.
Desktop notification scripts
We wrote shell scripts that used osascript on macOS and notify-send on Linux to pop up desktop notifications when Claude Code was waiting. Better than nothing, but desktop notifications are easy to miss, impossible to act on from a different device, and they give you no context about what Claude is actually doing.
Watching the terminal
The honest truth: most of the time, we just sat at our desks and watched. We alt-tabbed to the terminal every few minutes to see if Claude needed something. This works, but it defeats the purpose of having an AI agent. If you have to watch the agent work, you might as well do the work yourself.
The Insight
The breakthrough came from a simple observation: the one application every developer already has open, already receives notifications from, and can respond to from anywhere is their messaging app.
Specifically, Telegram.
Telegram has a bot API that is free, well-documented, and unrestricted. Telegram bots can send formatted messages, inline buttons, images, and receive text, voice messages, and callbacks. Telegram works on every platform and delivers notifications reliably. You can respond to a message in two seconds from your phone's lock screen.
What if Claude Code could send its permission requests to Telegram? What if you could tap "Allow" or "Deny" right there in the chat? What if you could see what Claude is doing, what files it is changing, and what commands it is running, all from a Telegram conversation?
That is when CodePulse was born.
What CodePulse Actually Does
CodePulse is a local-first companion for Claude Code that bridges the gap between the terminal and Telegram. It installs as a set of hooks into Claude Code's hook system, the official extension mechanism that lets external tools intercept and respond to agent events.
Here is what it provides:
Morning Briefing
When you wake up, CodePulse sends you a summary of everything Claude did overnight. How many files were modified, what commits were made, how many tokens were consumed, and whether anything needs your attention. You get the full picture before you even open your laptop.
Commit Gate with AI Review
Every git commit Claude makes passes through CodePulse first. Before you see the commit, a fast AI model (Haiku) analyzes the diff and writes a summary of what changed and why. You see the AI review, the actual diff, and then decide: approve, reject, or edit the commit message. No more rubber-stamping commits you have not read.
Approval Pipeline
When Claude Code needs permission to run a command or modify a file, CodePulse sends the request to Telegram with context about what is being asked. You tap Allow or Deny. Over time, CodePulse learns your patterns. If you always approve npm test, it starts auto-approving that command and tells you it did so. The 7-step ApprovalEngine handles everything from simple file reads to dangerous shell commands, with different trust levels for each.
The Pulse
A real-time activity feed that shows you exactly what Claude is doing right now. Which files it is reading, what commands it is running, what tools it is using. You do not have to be at your desk to know what is happening.
Bidirectional Communication
CodePulse is not just a notification system. You can send messages back to Claude through Telegram. Type an instruction, and it gets injected into Claude's conversation context. You can course-correct, provide additional information, or redirect the agent without touching the terminal.
Voice Input
Sometimes typing on your phone is inconvenient. Send a voice message to your CodePulse bot, and it gets transcribed and forwarded to Claude as a text instruction. Useful when you are reviewing code on the go.
Replay and Cost Intelligence
Every session is logged locally as JSONL files. CodePulse can replay a session, showing you what happened step by step. It tracks token usage and calculates costs per session and per project, so you know exactly how much your AI agent is costing you.
What Makes This Different
CodePulse is not a wrapper around Claude Code and it is not a web dashboard. It is a companion that uses the official hook system to extend Claude Code without modifying it. Your data stays on your machine in plain JSONL files. There is no cloud service, no account creation, no data leaving your network.
The architecture is straightforward: CodePulse registers hooks for Claude Code events like PreToolUse, PostToolUse, Notification, and Stop. When those events fire, CodePulse processes them and routes the relevant information to Telegram. When you respond in Telegram, CodePulse feeds your response back into Claude Code through the bidirectional protocol.
Everything runs locally. Your data stays on your machine, under your control.
What's Next
CodePulse is under active development. The core features are stable and used daily. We are working on multi-project support with Telegram topic routing, improved auto-approval patterns, and deeper integration with Claude Code's evolving hook system.
If you have ever left Claude Code running and come back to a stalled session, CodePulse solves that problem. If you have ever approved a commit without reading the diff, CodePulse solves that too.
Download CodePulse for free and try it yourself. Setup takes about two minutes.