Message Claude Code, Codex, or Pi from your phone. Schedule work for later. Keep the agent and its data on your own machine.
Good coding agents should be useful beyond an open terminal.
Push makes the agent you already trust available through iMessage, Telegram, or Slack. It can answer a message, continue a conversation, or run a Markdown job on a schedule. Give it clear context and a useful set of jobs, and it can act as your AI chief of staff. Your assistant files stay in a Git repository you own.
Push is a small bridge, not a new agent. Your coding agent still controls the models, tools, permissions, and reasoning.
OpenClaw and Hermes Agent are powerful assistant platforms with their own agent runtimes, tools, skills, memory, and messaging layers.
Push does not replace your agent. One small Rust binary adds messaging and schedules to Claude Code, Codex, or Pi.
flowchart TD
Message["Message from you<br/>iMessage · Telegram · Slack"]
Jobs["Scheduled<br/>Markdown jobs"]
Repo["Assistant repository<br/>SOUL.md · context · jobs"]
Push["Push<br/>message gateway · scheduler · history"]
Agent["Your coding agent<br/>Claude Code · Codex · Pi"]
Reply["Push returns the result<br/>to your chat"]
Message --> Push
Jobs --> Push
Push -->|dispatch| Agent
Repo -. context .-> Agent
Agent --> Reply
- Runs on your Mac or Linux machine
- Connects private iMessage, Telegram, and Slack chats
- Uses your existing Claude Code, Codex, or Pi setup
- Keeps conversations and job history between restarts
- Runs one-off or scheduled Markdown jobs
- Opens no inbound network port
You need Apple Silicon macOS or x86_64 Linux, Git, and one supported coding agent installed and signed in. iMessage requires macOS.
Install the latest release:
curl -fsSL https://raw.githubusercontent.com/owainlewis/push/main/install.sh | shThe binary goes to ~/.local/bin. If your shell cannot find push, add that
directory to PATH before continuing.
Create a Git-backed home for your assistant:
push init ~/Code/assistantThis creates a Git repository containing SOUL.md, shared instructions in
AGENTS.md, a CLAUDE.md reference to those instructions, context/, evals/,
and jobs/, then records its path in ~/.push/config.toml.
Edit ~/.push/config.toml to connect a chat channel. A small Telegram setup
looks like this:
channel = "telegram"
agent = "codex"
assistant_root = "~/Code/assistant"
[telegram]
bot_token = "token-from-BotFather"
allow_user_ids = [123456789]Check the setup and start Push:
push doctor
pushFor channel setup, assistant design, service installation, jobs, permissions, and every config option, follow the developer docs.
Install the stable Rust toolchain, then run:
git clone https://github.com/owainlewis/push.git
cd push
cargo build --locked --releaseThe binary will be at target/release/push. See the
contributing guide for development checks and documentation
setup.
Push is early software. Please read the security policy before reporting a vulnerability. Bug reports, ideas, and pull requests are welcome.