Skip to main content

Gate Claude Code tool use behind Slack approvals and enable remote task execution from your phone

Project description

claude-gate

Gate Claude Code tool use behind approvals and control it remotely from your phone via Slack DMs.

What it does

  • Remote task execution — start a session from Slack, send a task as text, 🎙️ voice message, or 🖼️ image, confirm it with a button, and Claude Code runs it on your machine.
  • Interactive sessions!start-session opens a back-and-forth conversation with Claude directly from Slack. Follow-up messages run instantly within the same session.
  • Session resume!sessions lists your last 10 sessions with a Resume button on each. Pick up any previous conversation exactly where you left off.
  • Task approval — every task shows a confirmation card with Run Task / Cancel before anything executes. Nothing runs without your explicit approval.
  • Per-session model switching — switch between Opus, Sonnet, and Haiku mid-session with !model opus. Resets to default when the session ends.

Install

pipx install claude-gate

Setup

1. Create a Slack app

Run the guided setup to get the manifest and step-by-step instructions:

cg setup-slack

This prints the Slack app manifest and walks you through creating the app, installing it to your workspace, and copying the Bot Token (xoxb-...) and App Token (xapp-...).

2. Initialise your project

Run this from your project root:

cg init

This creates .claude/ with all hook scripts and settings, then prompts for your tokens.

3. Verify and start

cg doctor   # confirms tokens work
cg up       # starts the daemon (Ctrl+C to stop)
cg up -d    # or run it in the background

Slack commands

Command What it does
!start-session Open an interactive back-and-forth session
!end-session Close the interactive session
!sessions List last 10 sessions with Resume buttons
!help Show all available commands
!status Show what's running and elapsed time
!output [N] Dump the last N lines of output
!stop Kill the running task
!log Show the path to the full task log file
!revoke Revoke the "Allow All Session" flag early
!model Show the current model for this session
!model list List all available models
!model opus Switch to Opus for this session
!model sonnet Switch to Sonnet for this session
!model haiku Switch to Haiku for this session
!model reset Reset to default model (claude-sonnet-4-6)
🎙️ Voice message Transcribed via Whisper, confirmed via button (requires active session)
🖼️ Image(s) Saved to .claude/images/, caption becomes the task — confirmed via button (requires active session)

CLI reference

cg setup-slack     Print Slack app manifest and guided setup (start here)
cg init            Scaffold .claude/ and configure credentials
cg init --adopt    Existing .claude/ setup — just write .env
cg up              Start daemon in foreground
cg up -d           Start daemon detached (background)
cg down            Stop background daemon
cg status          Show daemon status and recent logs
cg logs [-f]       Tail activity and daemon logs
cg doctor          Verify tokens, deps, hook integrity
cg upgrade-hooks   Update hook files from package (backs up yours first)
cg remove          Remove claude-gate from the current project

Requirements

  • Python 3.10+
  • A Slack workspace where you can install apps
  • claude CLI installed and authenticated
  • notify-send for desktop notifications (optional — sudo apt install libnotify-bin on Linux, brew install terminal-notifier on Mac)
  • OpenAI API key for voice message transcription (optional — images work without it)

How it works

Claude Code runs hooks before every tool use. The hooks in .claude/hooks/ post an approval card to your Slack DM and wait for your response. The daemon (cg up) listens for incoming Slack messages and spawns claude --print subprocesses for remote tasks.

See CLAUDE.md for the full architecture.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

claude_gate-1.0.5.tar.gz (30.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

claude_gate-1.0.5-py3-none-any.whl (33.2 kB view details)

Uploaded Python 3

File details

Details for the file claude_gate-1.0.5.tar.gz.

File metadata

  • Download URL: claude_gate-1.0.5.tar.gz
  • Upload date:
  • Size: 30.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for claude_gate-1.0.5.tar.gz
Algorithm Hash digest
SHA256 86ba81c4938efd315e4056f1de2022d6e45e3b6bc6ca379b2224ee02a2643dd6
MD5 ff207cca7dc68bdb89ba144c5a03c2c0
BLAKE2b-256 0d4dc9e5e3c46b66146ad92dbc2e420246c3f49fe43cd33fc0ee299b938469cf

See more details on using hashes here.

File details

Details for the file claude_gate-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: claude_gate-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 33.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for claude_gate-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 a1a2e8a02717339f7d147425212a682e29967fb6730cf96c2b90407ccd5cecd0
MD5 a06735c4f8517589fbbbce9e5692ef41
BLAKE2b-256 7aa66eea293aa567d13f44cafb327d27d7199629ced9ed395e64534aa178daa0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page