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 or 🎙️ voice message, 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)

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)

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.4.tar.gz (29.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.4-py3-none-any.whl (32.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: claude_gate-1.0.4.tar.gz
  • Upload date:
  • Size: 29.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.4.tar.gz
Algorithm Hash digest
SHA256 883387bbac582fbe10d1b527fae81913802808bc17ffd6f04f0a219933326eaf
MD5 ca31568dfdb9430b879b3d047263cab6
BLAKE2b-256 d87461477b2a2ec6e6c22897dc86088c35c7f4bffdf9f96c2eafa74c5779977d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: claude_gate-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 32.3 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 73d3e89b58912144c8fea0ef97d2b98dc3eb58558fe813147e41f4ecf9d126bc
MD5 7d86862cd89a8bc1d09bc8975fb2e882
BLAKE2b-256 0e0a34a98c5754e7462b471f86c2221496a46d3eb29d1c903821c36c85949de3

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