Serdar (@soztetik) on X

X (formerly Twitter) ·

4 min read Original article ↗

Recently I've released the /call-me skill and the app. While people seeing the skill and the plugin thought this is a claude-code only workflow, it is actually simpler and more general than that.

You install the call me app and you are assigned a phone number. From that point on, without any registration, anyone who knows your number can call you. Which actually makes it a phenomenal case for agents. They make one http request with text in it, and that text is called back to you, and your response given as a text to your agent.

The server turns the text into speech with TTS and rings your number. To keep the costs low, it just turns your answer into text and sends it back. Best part is, you can pick up the call from anywhere; including driving a car, or climbing with airpods and many other cases since it uses CallKit of iOS same UI as how you receive any of your calls.

While this is fairly simple and funny app, it has some strong use cases. One of which is the long-running (more than couple of days) tasks that you don't necessarily want to look at unless you are absolutely needed.

Since it was the first app I was submitting to app store; I was getting many nitpicks in my submission. And they always come one by one. Each rejection means couple of days wait time. But you can just say:

check my app store submission with /use-browser and set up a cronjob to watch requests onto my app submission. If it is a simple fix just fix it.

What you are going to get, in claude code, a 4-hour cron job that can keep checking the status of your app, act on it if necessary and call you if you are needed.

What is nice is that, tool is AI agnostic. Can be used with any harness. Can be part of a monitor or can be a session end hook where agent again decides to call you or not.

But how does it actually remember to call you?

1. Top-level CLAUDE.md file

Most basic way of doing it is go to your top-level claude.md file at `~/.claude/CLAUDE.md` and add a line that says

I am mostly AFK: when you need info, a decision, or an answer from me, you MUST call me via the /call-me skill

But claude.md file is not aggressive enough. Most of the time, the time to act is end of session and claude already thinks you are there so there is no need of a call. Most of the cronjobs, you want a call if you are absolutely needed. This method likely misses the call. So this brings us to the second method.

2. Stop hook with a monitor

So at the end of each turn, if claude thinks it requires an answer from you, it can set up a timer called "monitor" where monitor will wait certain time for an answer from you. If no answer, you'll get a call. To setup a monitor, how long to set it up, it'll be decided by the model each time.

Ask your claude:

make a claude hook so it spawns a monitor at each stop that waits a certain time in case user answers. if answer is needed, after some time user can be called with /call-me skill

result should look like the hook in the call-me repo integrations

So go ahead, and give this one a try. Keep in mind that this app shines with long running tasks. Learn how to keep your mac from sleeping. And learn how to give your agents access to your browser so most of your logins are there.

Have you tried it and couldn't install it? Just give me feedback from your terminal: