# call-me needs three accounts to ring your phone, and picks the port for you

> CallMe is a small TypeScript plugin that makes Claude Code place a real phone call when a task finishes or needs a decision. It runs as a local MCP server over stdio, opens an ngrok tunnel for the provider's webhooks, and reads everything from environment variables.

**ZeframLou/call-me** — Minimal plugin that lets Claude Code call you on the phone.

- Repository: https://github.com/ZeframLou/call-me
- Stars: 2,645 · Forks: 261
- Language: TypeScript
- License: not declared
- Published: 2026-09-28 · Updated: 2026-09-28 · Language: en
- Canonical page: https://hysenlabs.com/projects/zeframlou-call-me

## Three accounts and a tunnel stand between you and a ringing phone

The quick start opens with accounts rather than installation, and the list is short enough to state exactly. A phone provider, either of two named services. An API key for speech-to-text, and for text-to-speech as well if you are not running the local alternative. And an account with a tunnel provider, free, whose only job is to expose a webhook. That last one is the part people miss: a phone provider has to call your server when someone answers, and your server is on your laptop, so something has to sit in between. The architecture diagram states it plainly, with the plugin talking to a local server over standard input and output, the server opening a tunnel, and the tunnel forwarding to the provider. The tunnel is created automatically, so the plugin does not ask you to start one yourself.

## Twilio is quoted at twice the per minute rate and asks for $20 up front

The two provider options are presented as collapsible blocks with the recommendation in the heading, and the reasoning is numeric. One is marked recommended and about fifty percent cheaper; the other is marked not recommended, with the reason that you have to buy twenty dollars of credits before you can start and that it is more expensive overall. The per minute figures are given in a table further down: about seven thousandths of a dollar a minute for outbound calls on one and about fourteen thousandths on the other, with numbers at roughly a dollar a month and roughly a dollar fifteen respectively. Onboarding differs too. The recommended path asks you to verify your identity, buy a number, create a voice application with a webhook URL pointing at a tunnel path, and verify the number you want to receive calls on.

## The example environment file and the readme disagree about the port

This is the kind of inconsistency that costs an afternoon, and both files are in the repository. The optional variables table gives the local HTTP server port a default of zero, with the parenthetical that zero means the operating system picks a free port. The example environment file says the same variable is the local port for webhooks and gives a default of three thousand three hundred and thirty-three, with a commented assignment to that value. Both cannot be the default. The example file also omits the provider variable entirely, even though the readme says there is a default provider, and it omits the two timing variables for speech, the text-to-speech provider and voice, and the Kokoro URL. So the file is a subset, and its one port value contradicts the documented behaviour.

## Eleven variables, seven of them load-bearing

The configuration is a single environment block, recommended to live in the settings file of the coding tool rather than in a shell profile. Seven variables are required: which provider to use, an account identifier that means a connection id on one provider and an account id on the other, an authentication token that means an API key on one and an auth token on the other, the number the call comes from in international format, the number it goes to, the speech API key, and the tunnel token. Four are optional and each changes behaviour rather than being cosmetic: the speech engine and its voice, the URL of an existing local speech instance, a custom tunnel domain which is a paid feature, and two timing values, one for how long a reply may take and one for how much silence counts as the end of speech.

## Four tools, and one exists to buy you silence

The tool surface is four calls and reads like a phone conversation. One starts a call with a message. One continues an existing call with a follow-up message, which is what makes the interaction multi-turn rather than a one-shot notification. One ends a call with a closing message. The fourth is the interesting one: speak to the user without waiting for a response, described as useful for acknowledging a request before a slow operation, and the documented pattern is to speak, carry on with the long task, and then resume the conversation with the results. That ordering is the whole design. It is also why the readme claims tool-use composability, since a search or any other tool can run between two utterances without the call dropping.

## Installation is two slash commands and a restart

The install section is the shortest part of the page. You add the marketplace by naming the owner and repository, you install the plugin by naming the plugin and the marketplace it came from, and then you restart the coding tool:

```bash
/plugin marketplace add ZeframLou/call-me
/plugin install callme@callme
```
 Nothing else is copied by hand, no build step is described, and no runtime dependency is listed for the server. The heavy lifting has already happened in the earlier steps, where the accounts, the number and the environment block were set up. The repository layout matches that framing: a plugin manifest directory, a directory for hooks, one for skills, the server itself, an example environment file, and a single image file. The plugin is a bundle around a local server rather than an application you run.

## One release, no licence file, and the last commit is from April

The repository's metadata is thin in a way worth noting before you build anything on it. There is exactly one release, a patch above one point zero, published on the same day as the last push to the default branch, which is 7 April 2026. That is about six months before the present day, and nothing in the repository suggests work since. There is also no licence file at the top level, and the repository's licence metadata does not name one, so the terms of use are undefined rather than permissive. The top level is otherwise small: a plugin manifest, an example environment file, a gitignore, the readme, one image, and three directories for hooks, skills and the server. Nothing about the layout suggests a test suite or a release pipeline.

## Conclusion

CallMe fits someone who starts long agent tasks, walks away, and wants a phone call rather than a terminal notification when the work finishes or blocks on a question. Three things to check before you set it up. Budget the tunnel and the number, because the plugin needs a purchased and verified phone number plus a tunnel provider, and the page's own figures put a minute of conversation at somewhere between one and four cents depending on which speech engine you choose. Decide between the two speech paths early, since the free local one needs Docker and the paid one needs an API key you already have or must buy. And resolve the licence, because the repository has no licence file and its metadata does not name one, so the terms are whatever the author decides. If you only want a desktop alert, this is a large amount of infrastructure for the job.

## FAQ

### How do I install the call-me plugin for Claude Code?

With two slash commands: add the marketplace with /plugin marketplace add ZeframLou/call-me, then install with /plugin install callme@callme, and restart Claude Code. Before that you need a phone provider account with a purchased and verified number, an OpenAI API key for speech services, and a tunnel account for the webhook.

### How much does the call-me plugin cost to run?

The recommended provider is quoted at roughly $0.007 per minute outbound plus about $1 a month for the number, and the alternative at roughly $0.014 a minute plus about $1.15 a month. Speech-to-text is about $0.006 a minute and text-to-speech about $0.02 a minute with OpenAI, or free with the local Kokoro engine, giving roughly $0.03 to $0.04 a minute or $0.01 to $0.02.

### Can call-me use Twilio instead of Telnyx?

Yes. Set the provider variable to twilio and supply your Account SID and Auth Token in place of the Telnyx connection id and API key. The readme marks Telnyx as recommended and about fifty percent cheaper, and warns that Twilio requires buying twenty dollars of credits before you can start.

### Does call-me work with a smartwatch or a landline?

The feature list says it works anywhere a phone can ring, listing a smartphone, a smartwatch and a landline, because what arrives is an actual phone call from a purchased number rather than a message or a push notification.

### Which speech services does call-me use?

OpenAI for speech-to-text, with a transcription model quoted at about $0.006 a minute, and OpenAI for text-to-speech by default at about $0.02 a minute. Setting the text-to-speech provider to the local option runs a free engine in Docker instead, or you can point it at the URL of an instance you already run.

## Sources

- [Issues](https://github.com/ZeframLou/call-me/issues)
- [README](https://github.com/ZeframLou/call-me/blob/main/README.md)
- [Releases](https://github.com/ZeframLou/call-me/releases)
- [ZeframLou/call-me on GitHub](https://github.com/ZeframLou/call-me)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/zeframlou-call-me
