Skip to main content

Your personal AI agent. Text it on WhatsApp. It does stuff. ๐Ÿฆ€

Project description

Pincer

Pincer

Open-source AI agent that works across WhatsApp, Telegram, Slack, Email, Voice, and 600+ tools โ€” self-hosted, security-first, runs in Docker.

PyPI Python 3.11+ CI codecov
License: MIT Discord PyPI Downloads Pincer demo โ€” agent checking email and scheduling a meeting via WhatsApp

pip install pincer-agent && pincer init

Website ยท Docs ยท Quick Start ยท Discord ยท Contributing ยท Changelog


๐Ÿ†• What's new in 0.7.6 (2026-04-19)

  • Slack Native โ€” 71 tools (messages, channels, users, files, reactions, pins/bookmarks/reminders/search) in src/pincer/integrations/slack/. Enable with PINCER_SLACK_BOT_TOKEN (+ PINCER_SLACK_USER_TOKEN for search).
  • MCP OAuth 2.0 Authorization Server โ€” expose Pincer tools to remote MCP clients: /authorize ยท /token ยท /introspect ยท /revoke, RFC 8414 metadata, PKCE, JWT, scope-based access.
  • Google Workspace Meet v2 โ€” 27 new tools (spaces, conference records, recordings, transcripts, smart notes). Google Workspace total is now 113.
  • Tools Catalog โ€” docs/TOOLS_CATALOG.md documents all 304 native tools (24 core + 27 skills + 113 Google Workspace + 69 Microsoft 365 + 71 Slack) plus unlimited via MCP.

๐Ÿ“– Full release notes โ†’ CHANGELOG.md ยท Upgrade guide โ†’ docs/announcements/v0.7.6.md


TL;DR

  • What: An open-source AI agent that lives in WhatsApp, Telegram, Discord, Slack, Signal, and Email โ€” 600+ tools out of the box (Google Workspace, Microsoft 365, native Slack, Google Meet, image generation, voice calling, MCP), connects to any MCP server, and actually does things
  • For whom: Developers and technical users who want a personal agent they can self-host, audit, and extend
  • Why it exists: Existing agents had malicious plugins, surprise bills, and codebases too large to review
  • How it's different: Clean Python codebase. Straightforward config via env vars. Skills sandboxed in subprocesses. Hard daily spending cap
  • How it stays safe: User allowlist, tool approval prompts, AST scanning, skill signing, structured audit log โ€” and pincer doctor to verify it all

What is this?

Pincer is an open-source AI agent that lives in your messaging apps. You text it โ€” "check my emails, summarize anything important, and add the meetings to my calendar" โ€” and it does it. It runs on your machine, talks to the LLM of your choice, and the entire codebase is readable Python you can audit in an afternoon.

You (WhatsApp): Check my email and brief me on anything important

๐Ÿฆ€ Pincer: ๐Ÿ“ง 12 unread, 3 need attention:

  1. Contract from Sarah โ€” needs signature by 5pm
  2. Server alert โ€” CPU spike on prod (resolved itself)
  3. Board meeting moved to Thursday 2pm

๐Ÿ“… Updated your calendar: โ€ข Thu 2pm โ€” Board meeting (moved from Wednesday) โ€ข Fri 11am โ€” Design review follow-up (new)

๐Ÿ’ฐ $0.003 ยท $4.92 remaining today


Why I built this

I was running a popular AI agent when two things happened in the same week: I got hit with a $127 API bill I didn't authorize, and a security researcher found that a skill I'd installed had been quietly phoning home with my chat history.

By day, I'm a radiologist โ€” I also research and build AI for the medical sector. When your work involves regulated patient data, seeing a personal AI agent silently exfiltrate conversations hits differently. I realized the agent I wanted didn't exist: one where I could read the whole codebase, set a hard spending cap, and know that plugins are strictly sandboxed.

So I built it. Pincer is the agent I wanted. If you want the same thing, it's yours.


Design Trade-offs Compared

Fair comparison note: OpenClaw is a respected project that proved personal AI agents are what people want. It optimizes for plugin ecosystem breadth and community size. Pincer optimizes for auditability, cost control, and sandboxed security. Different goals, different trade-offs. Versions compared: Pincer 0.7.x vs OpenClaw as of Feb 2026.

Pincer OpenClaw LangChain agents Custom bot
Codebase Auditable Python 200K+ LOC Framework + glue Yours
Language Python TypeScript Python Any
Install โ†’ first message ~5 min 30โ€“60 min Hours Days
Skill isolation Subprocess sandbox In-process DIY DIY
Skill vetting AST scan + safety score + optional signing Community-reported DIY DIY
Cost controls Hard daily cap, auto-downgrade, per-response cost None built-in None built-in DIY
Config surface Env vars + optional TOML Multi-file JSON Code Code
Channels 8 + voice calling 2โ€“3 0 1 (usually)
Native tool count 304 (304+ MCP) ~60 ~40 DIY
Memory Cross-channel, FTS5 + embeddings Per-channel Needs setup DIY
MCP Full client + OAuth 2.0 server None Plugins DIY
Google Workspace 113 tools (Gmail/Calendar/Drive/Docs/Sheets/Slides/Meet/Tasks/Contacts) Partial DIY DIY
Microsoft 365 69 tools (Outlook/OneDrive/Teams/OneNote/To Do) None DIY DIY
Slack (native) 71 tools (messages/channels/users/files/reactions) None DIY DIY
Image generation fal.ai + Gemini built-in None DIY DIY

โšก Quick Start

Prerequisites

You need three things: Python 3.11+, an LLM API key (Anthropic, OpenAI, Grok, or free with Ollama), and a Telegram bot token (takes 2 min via @BotFather).

Option 1: pip

pip install pincer-agent
pincer init                  # 5-min interactive wizard
pincer run                   # done โ€” message your bot on Telegram

Option 2: Docker

git clone https://github.com/pincerhq/pincer.git && cd pincer
cp .env.example .env         # edit with your API keys
docker compose up -d         # dashboard on localhost:8080

Option 3: One-click cloud

Deploy on Railway Deploy to Render Deploy to DO

Minimal .env

PINCER_ANTHROPIC_API_KEY=sk-ant-...    # Anthropic, OpenAI, or Grok
PINCER_TELEGRAM_BOT_TOKEN=7000000:AAx... # From @BotFather
PINCER_TELEGRAM_ALLOWED_USERS=123456789  # Your Telegram user ID
PINCER_DAILY_BUDGET_USD=5.00           # Hard daily spending limit in USD

Full config reference โ†’


Core vs Peripheral

Pincer is solo-maintained. To set honest expectations, features are explicitly split:

Tier What's included Maintenance guarantee
๐ŸŸข Core Agent loop, memory, tools, security, cost controls, Telegram CI-tested, regression-protected, release-blocking
๐ŸŸก Stable WhatsApp, Discord, Slack (channel + 71 native tools), Email, Google Workspace (113 tools), dashboard, skills system Tested, maintained, may lag 1โ€“2 weeks on upstream API changes
๐Ÿงช Peripheral Voice calling, Signal, Microsoft 365 (69 tools), MCP client + OAuth 2.0 server, image generation, proactive scheduler Working, documented, community-maintained welcome
๐Ÿ”ฎ Planned iMessage, SMS, Zoom, Viber, WeChat, Matrix Not yet started โ€” help wanted

๐Ÿ“ฑ Channels

Channel Tier How it works
Telegram ๐ŸŸข Bot API via aiogram 3.x โ€” keyboards, voice notes, images, groups
WhatsApp ๐ŸŸก Multi-device protocol via neonize โ€” QR pairing, no API costs
Discord ๐ŸŸก Slash commands, threads, rich embeds via discord.py
Slack ๐ŸŸก DMs, channels, threads via slack-bolt
Email ๐ŸŸก Gmail OAuth โ€” read, search, draft, send
Signal ๐Ÿงช E2E encrypted via signal-cli-rest-api Docker sidecar; WebSocket or poll receive mode
Voice ๐Ÿงช Make/receive phone calls via Twilio (~$0.12/3-min call)
Web UI ๐ŸŸก Dashboard + chat at localhost:8080

Cross-channel memory: Tell the agent something on WhatsApp. Ask about it on Telegram. It remembers โ€” SQLite + FTS5 full-text search, vector embeddings for semantic recall, auto-summarization, and entity extraction.


๐Ÿ”ง Tools โ€” 304 native, 600+ with MCP

Pincer ships 304 first-party tools and plugs into any MCP server to reach 600+ out of the box. Full list in docs/TOOLS_CATALOG.md.

Category Count Enable with
Core built-ins (web_search, shell_exec, python_exec, file ops, browser, email, calendar, image, voice) 24 Always on
Bundled skills (weather, news, translate, stocks, expenses, habits, pomodoro, git, contactsโ€ฆ) 27 Always on
Google Workspace โ€” Gmail ยท Calendar ยท Drive ยท Docs ยท Sheets ยท Slides ยท Meet ยท Tasks ยท Contacts 113 pincer setup-google
Microsoft 365 โ€” Outlook ยท Calendar ยท OneDrive ยท Teams ยท OneNote ยท To Do ยท Contacts 69 pincer setup-ms365
Slack (native) โ€” messages ยท channels ยท users ยท files ยท reactions ยท pins ยท reminders ยท search 71 PINCER_SLACK_BOT_TOKEN
MCP tools (GitHub, Postgres, Notion, Linear, Stripe, filesystem, โ€ฆ) unlimited pincer.toml + [mcp]
Custom skills (AST-scanned + sandboxed) unlimited pincer skills install

Approval model: destructive tools (shell_exec, python_exec, file_write, email_send, make_phone_call, and every writing action on external APIs) ask in chat before executing. You reply โœ… or โŒ.

Full tools catalog โ†’

Python SDK
from pincer import Agent

agent = Agent()
result = agent.ask("Summarize ~/data/sales.csv and plot monthly trends")
result.display()  # renders inline in Jupyter
async with Agent() as agent:
    result = await agent.run("What meetings do I have tomorrow?")
    print(result.text)
    print(f"Cost: ${result.cost:.4f}")

๐Ÿ–ผ๏ธ Image Generation

Pincer has a built-in generate_image tool powered by fal.ai (primary) and Google Gemini (fallback). The provider is selected automatically based on which key is configured.

# Enable fal.ai (recommended)
PINCER_FAL_KEY=...

# Or Gemini
PINCER_GEMINI_API_KEY=...

# Optional controls
PINCER_IMAGE_MAX_COST_PER_REQUEST=0.10   # USD cap per generation
PINCER_IMAGE_DAILY_LIMIT=50             # Max generations per day

Install the optional dependency:

pip install "pincer-agent[image]"

You (Telegram): Generate an image of a futuristic Tokyo street at night in cyberpunk style

๐Ÿฆ€ Pincer: (sends the generated image inline) Done โ€” generated in 4.2s via fal.ai ยท $0.004


๐Ÿ”Œ MCP โ€” Model Context Protocol

Pincer is a full MCP client and MCP server. Connect any MCP-compliant tool server (GitHub, Postgres, Notion, Stripe, custom) and its tools appear in the agent automatically.

# pincer.toml
[[mcp.servers]]
name = "github"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-github"]
env = { GITHUB_PERSONAL_ACCESS_TOKEN = "ghp_..." }

[[mcp.servers]]
name = "postgres"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-postgres", "postgresql://..."]
pincer mcp list          # show connected servers + status
pincer mcp tools         # list all registered MCP tools
pincer mcp test github   # test a specific server connection
pincer mcp call github get_file_contents --repo pincerhq/pincer --path README.md

Install the optional dependency:

pip install "pincer-agent[mcp]"

MCP OAuth 2.0

Pincer also acts as an OAuth 2.0 Authorization Server for MCP clients. Any MCP client can authenticate against Pincer using standard OAuth 2.0 with PKCE:

  • /authorize, /token, /introspect, /revoke endpoints
  • RFC 8414 server metadata
  • Scope-based access control
  • JWT tokens via PyJWT
  • Bearer token middleware for protected routes

Full MCP guide โ†’


๐Ÿงฉ Skills

Skills extend the agent. Each skill = a Python file + YAML manifest, loaded dynamically on startup.

pincer skills list                     # what's installed
pincer skills install github:user/repo # install (scanned first)
pincer skills scan ./untrusted-skill   # security scan before install

11 bundled skills ship with Pincer (27 tool functions total): weather, news, translate, summarize_url, youtube_summary, expense_tracker, habit_tracker, pomodoro, stock_price, git_status, phone_contacts.

Writing your own skill
# skills/my_skill/main.py
from pincer.tools import tool

@tool(name="get_weather", description="Get current weather for a city")
async def get_weather(city: str) -> str:
    async with httpx.AsyncClient() as client:
        resp = await client.get(f"https://wttr.in/{city}?format=j1")
        data = resp.json()
        return f"{city}: {data['current_condition'][0]['temp_C']}ยฐC"
# skills/my_skill/skill.yaml
name: weather
version: 1.0.0
permissions: [network]

The manifest declares permissions. The sandbox enforces them. No declared permissions = no network, no filesystem, no nothing.

[Full skills guide โ†’](docs/Skills guide.md)


๐Ÿ›ก๏ธ Security & Threat Model

Pincer is designed around two assumptions: every inbound message is untrusted input, and every skill is potentially malicious.

What Pincer protects against

Threat How
Unauthorized access User allowlist โ€” unapproved IDs are silently dropped
Destructive tool calls Dangerous tools require explicit โœ… approval in chat
Malicious skills Subprocess sandbox (memory cap, CPU timeout, filesystem isolation, network whitelist)
Supply-chain attacks AST scanning pre-install + optional cryptographic skill signing
Prompt injection via tools Tool outputs are sanitized; system prompt is hardened against injection
Runaway costs Hard daily budget, per-session limits, auto-downgrade at 80% spend
Forensic blindness Structured JSON audit log for every action โ€” who, what, when, cost
Unauthorized MCP access OAuth 2.0 + PKCE + scope enforcement on all MCP server routes

What Pincer does NOT protect against

  • Compromised host OS โ€” if your server is rooted, all bets are off
  • Malicious LLM provider โ€” if the API itself is compromised, Pincer can't detect that
  • Social engineering of the user โ€” Pincer can't stop you from approving a bad tool call
  • Side-channel exfiltration โ€” a skill that encodes data into tool output text could leak information to the LLM context; we mitigate but can't fully prevent this

Honest trade-offs

Sandboxing adds 40โ€“120ms latency per tool call (subprocess spawn + IPC). For most use cases this is unnoticeable. For latency-critical pipelines, you can disable sandboxing per-skill at your own risk via sandbox: false in the manifest.

Real-world failure example

If the LLM attempts to exfiltrate data by crafting a web_search query containing sensitive content (e.g., web_search("user's SSN is 123-45-6789")), the query executes โ€” Pincer doesn't inspect tool input semantics, only permissions. Mitigation: the audit log captures every tool call, and pincer doctor flags unusual outbound patterns. Full prevention requires output filtering, which is on the roadmap.

pincer doctor

One command audits your setup โ€” 40+ checks covering config, keys, permissions, skills, MCP, image generation, and network exposure:

$ pincer doctor
  ๐Ÿฆ€ Pincer Doctor v0.8.x
  โœ… API key valid (claude-sonnet-4-5-20250929)
  โœ… Telegram connected (@my_pincer_bot)
  โœ… Daily budget: $5.00
  โœ… 11 skills installed, all scored โ‰ฅ 80
  โœ… Google Workspace: 113 tools registered
  โœ… Microsoft 365: 69 tools registered (token cached)
  โœ… Slack native: 71 tools registered
  โœ… MCP: 2 servers connected (github, postgres) โ€” 42 extra tools
  โœ… Image generation: fal.ai key present, daily limit 50
  โš ๏ธ  Discord DM policy is "open" โ€” consider "pairing"
  โœ… No exposed ports beyond localhost
  44 passed ยท 1 warning ยท 0 critical

Full security model โ†’ ยท Found a vulnerability? Security Policy


๐Ÿ“Š Quantified Use Cases

Personal email triage (real numbers from beta testing):

  • 40โ€“60 emails/day processed, 3โ€“5 flagged as important
  • Calendar auto-updated 2โ€“3 times/day
  • Daily LLM cost: $0.18โ€“$0.35 (Claude Sonnet 4.5)
  • Monthly: ~$7 with daily budget cap of $0.50

Voice calling for appointments:

  • 4 outbound calls/week (dentist, insurance, scheduling)
  • Average call duration: 2.5 minutes
  • Cost per call: ~$0.12 (Twilio + Deepgram + ElevenLabs)
  • Monthly voice cost: ~$2

Image generation:

  • On-demand via fal.ai: ~$0.004/image (fal-ai/nano-banana-2)
  • Configurable daily limit and per-request cost cap
  • Images delivered inline in Telegram, Discord, and Web UI

Fully offline with Ollama:

  • Llama 3.3 70B via Ollama on an M2 Mac
  • API cost: $0.00. Response time: 3โ€“8 seconds depending on context length
  • Trade-off: less reliable tool use than Claude, no voice calling

Who this is NOT for

  • Non-technical users โ€” Pincer requires terminal access, env vars, and API keys. There's no GUI installer.
  • Enterprises needing SSO/compliance today โ€” multi-user, audit export, and SSO are planned but not shipped yet.
  • Zero-setup expectations โ€” you will spend 5โ€“10 minutes configuring API keys and channel tokens.
  • People who want a hosted service โ€” Pincer runs on your machine. Managed hosting is on the roadmap, not available today.

What we intentionally didn't build

  • No hosted cloud โ€” your data stays on your hardware. We're not a SaaS.
  • No auto-installed skills โ€” every skill requires explicit pincer skills install with a security scan.
  • No team features โ€” Pincer is a single-user personal agent. Multi-user is planned, not promised.
  • No telemetry โ€” zero analytics, zero crash reports, zero phone-home. Verify: grep -r "telemetry\|analytics\|tracking" src/.
  • No framework dependency โ€” no LangChain, no CrewAI, no abstractions. Pure asyncio + provider SDKs.

These are focus decisions, not limitations. Every feature we didn't build is maintenance we didn't take on.


๐Ÿค– Supported Models

Set one or more โ€” failover is automatic.

Provider Env var Models
Anthropic โญ PINCER_ANTHROPIC_API_KEY Claude Opus 4.6 / Sonnet 4.5 / Haiku 4.5
OpenAI PINCER_OPENAI_API_KEY GPT-4o / GPT-5 / o-series
xAI Grok PINCER_GROK_API_KEY Grok-2 / Grok-3 (OpenAI-compatible API)
DeepSeek PINCER_LLM_API_KEY DeepSeek V3 / R1
Ollama OLLAMA_HOST Any local model โ€” fully offline, $0
OpenRouter PINCER_LLM_API_KEY 100+ models, single key

Recommendation: Claude Sonnet 4.5 for tool-use quality and prompt-injection resistance. Ollama for zero-cost, fully private operation.

โฐ Proactive Agent

Pincer doesn't just respond โ€” it reaches out.

Morning briefing (7 AM, configurable): weather, today's calendar, top 3 emails, habit check-in.

Scheduled tasks: "Remind me every Friday at 5pm to submit my timesheet" โ†’ cron-scheduled with full cron syntax support.

Event triggers: Gmail pub/sub for real-time email reactions, webhooks from any service.

๐Ÿ’ป CLI Reference
pincer init                        # interactive setup wizard
pincer run                         # start agent (all channels)
pincer run --channel telegram      # single channel
pincer chat                        # CLI chat for testing
pincer doctor                      # security + config audit (40+ checks)
pincer cost                        # spending summary
pincer skills list|install|scan    # manage skills
pincer mcp list                    # MCP servers + status
pincer mcp test <server>           # test MCP connection
pincer mcp tools                   # list registered MCP tools
pincer mcp call <server> <tool>    # call a specific MCP tool
pincer pair approve <ch> <code>    # approve a DM sender
pincer setup-google                # Google Workspace OAuth (113 tools)
pincer setup-ms365                 # Microsoft 365 device-code auth (69 tools)

Chat commands (any channel): /status, /budget, /new, /compact, /model <name>, /tools


๐Ÿ›๏ธ Architecture

graph TD
    WA[๐Ÿ“ฑ WhatsApp] --> CR[Channel Router]
    TG[๐Ÿ“ฑ Telegram] --> CR
    DC[๐ŸŽฎ Discord] --> CR
    SL[๐Ÿ’ผ Slack] --> CR
    EM[๐Ÿ“ง Email] --> CR
    VC[๐Ÿ“ž Voice] --> CR
    SG[๐Ÿ”’ Signal] --> CR
    WB[๐ŸŒ Web UI] --> CR

    CR --> AC[๐Ÿง  Agent Core ยท ReAct Loop]

    AC --> TR[๐Ÿ”ง Tool Registry + Sandbox]
    AC --> MM[๐Ÿ—ƒ๏ธ Memory ยท SQLite + FTS5 + Embeddings]
    AC --> SS[๐Ÿ‘ค Sessions ยท Per-channel ยท Per-user]
    AC --> MCP[๐Ÿ”Œ MCP Client + OAuth Server]
    AC --> IMG[๐Ÿ–ผ๏ธ Image Generation ยท fal.ai + Gemini]

    TR --> BT[Built-in Tools ยท 304 native]
    TR --> SK[Custom Skills ยท Sandboxed]
    TR --> GW[Google Workspace ยท 113 tools]
    TR --> MS[Microsoft 365 ยท 69 tools]
    TR --> SLK[Slack Native ยท 71 tools]
    MCP --> EXT[External MCP Servers ยท GitHub ยท Postgres ยท etc.]
  1. Message arrives โ†’ load session + relevant memories
  2. Send to LLM with available tools (built-in + skills + MCP tools)
  3. LLM returns tool call โ†’ execute in sandbox โ†’ feed result back โ†’ repeat
  4. LLM returns text โ†’ deliver to user via originating channel
  5. Save session, update memory, log cost

No frameworks. No abstractions. async/await + the Anthropic SDK.

Project structure & tech stack
pincer/
โ”œโ”€โ”€ src/pincer/
โ”‚   โ”œโ”€โ”€ core/         agent.py, session.py, config.py, soul.py, identity.py
โ”‚   โ”œโ”€โ”€ llm/          anthropic, openai, grok, ollama, router, cost_tracker
โ”‚   โ”œโ”€โ”€ channels/     telegram, whatsapp, discord, slack, email, voice, signal, web
โ”‚   โ”œโ”€โ”€ memory/       store (SQLite+FTS5), embeddings, entities, summarizer
โ”‚   โ”œโ”€โ”€ tools/        registry, sandbox, approval, builtin/ (24 core tools)
โ”‚   โ”œโ”€โ”€ skills/       loader, scanner (AST), signer
โ”‚   โ”œโ”€โ”€ image/        router, provider_fal, provider_gemini, types
โ”‚   โ”œโ”€โ”€ integrations/
โ”‚   โ”‚   โ”œโ”€โ”€ google/   113 tools โ€” Gmail, Calendar, Drive, Docs, Sheets, Slides, Meet, Tasks, Contacts
โ”‚   โ”‚   โ”œโ”€โ”€ ms365/    69 tools โ€” Outlook, Calendar, OneDrive, Teams, OneNote, To Do, Contacts
โ”‚   โ”‚   โ””โ”€โ”€ slack/    71 tools โ€” messages, channels, users, files, reactions, pins, search
โ”‚   โ”œโ”€โ”€ mcp/          core, client, manager, bridge, audit, security, exporter, registry_client
โ”‚   โ”‚   โ””โ”€โ”€ auth/     endpoints, tokens, pkce, scopes, consent, token_store (OAuth 2.0 server)
โ”‚   โ”œโ”€โ”€ voice/        engine, twiml_server, stt, tts, compliance
โ”‚   โ”œโ”€โ”€ security/     firewall, audit, doctor (40+ checks), rate_limiter
โ”‚   โ”œโ”€โ”€ costs/        budget
โ”‚   โ””โ”€โ”€ scheduler/    cron, proactive, triggers
โ”œโ”€โ”€ skills/           11 bundled (27 tool functions)
โ”œโ”€โ”€ tests/            pytest + pytest-asyncio
โ””โ”€โ”€ docs/             includes TOOLS_CATALOG.md (every tool)

Stack: Python 3.11+ / asyncio ยท anthropic + openai SDKs ยท aiogram 3.x ยท neonize ยท discord.py ยท slack-bolt ยท twilio ยท FastAPI + HTMX ยท SQLite + FTS5 ยท Playwright ยท pydantic-settings ยท typer + rich ยท mcp>=1.8.0 ยท PyJWT[crypto]>=2.8.0 ยท fal-client>=0.13.0

Optional extras:

pip install "pincer-agent[mcp]"    # MCP client + OAuth server
pip install "pincer-agent[image]"  # Image generation (fal.ai + Gemini)

๐Ÿ—บ๏ธ Roadmap

  • Agent core, memory, tools, security, cost controls
  • Telegram, WhatsApp, Discord, Slack, Email, Signal
  • Skill system with sandboxing, AST scanning, signing
  • Docker + one-click deploys (Railway, Render, DigitalOcean)
  • Voice calling (Twilio + STT/TTS + compliance)
  • Google Workspace integration (113 tools via pincer setup-google)
  • Microsoft 365 integration (69 tools via pincer setup-ms365)
  • Slack native integration (71 tools)
  • MCP client + OAuth 2.0 authorization server
  • Google Meet full surface โ€” spaces, recordings, transcripts, smart notes
  • iMessage โ€” help wanted
  • SMS โ€” Twilio SMS channel
  • Zoom โ€” Meeting channel
  • Encrypted memory โ€” at-rest database encryption
  • Multi-agent routing โ€” specialized sub-agents
  • Managed hosting โ€” for non-self-hosters (exploring, not promised)

Full roadmap: GitHub Discussions โ†’ Roadmap


Sustainability

Pincer is solo-maintained, open-source, and unfunded. That's a feature, not a weakness โ€” no investor pressure means no forced pivots, no telemetry, no "free tier sunsets."

The plan: grow the contributor community, move toward shared governance as trust is established (see Governance), and eventually explore a managed hosting option to fund ongoing maintenance. Nothing is promised beyond what's shipped today.


๐Ÿค Community

We welcome contributions from everyone โ€” first-timers, experienced engineers, doctors who code, tinkerers, and enthusiasts.

What How Difficulty
Build a skill [Skills guide](docs/Skills guide.md) โ€” 50โ€“150 lines ๐ŸŸข Easy
Improve docs Fix what confused you, translate, write a tutorial ๐ŸŸข Easy
New channel SMS, iMessage, Teams, Zoom, Viber, WeChat ๐ŸŸก Medium
Core features Encrypted memory, multi-agent routing ๐Ÿ”ด Hard
git clone https://github.com/pincerhq/pincer.git
cd pincer && uv sync && pytest

Discord ยท GitHub Discussions ยท Contributing guide ยท Governance


๐Ÿ“– Documentation

Doc What's in it
Quick Start Install to first message in 5 minutes
Development Guide Local setup, tests, dashboard, debugging, skills/channels/tools
Contributing PR guidelines, code style, ruff/mypy, CI
Architecture How it works, with Mermaid diagrams
Configuration Every env var, every option
[Skills Guide](docs/Skills guide.md) Build and publish custom skills
Security Model Full threat model, 8 defense layers
Deployment Docker, cloud, systemd, reverse proxy
Voice Setup Quick setup for outbound phone calls
[Voice Calling](docs/Voice calling.md) Twilio setup, STT/TTS, compliance
Signal Setup signal-cli Docker sidecar setup
MCP Guide Connect any MCP-compliant server; OAuth 2.0 server setup
[API Reference](docs/API reference.md) REST API for integrations
Tools Catalog Every tool Pincer can call โ€” 304 native + MCP
Microsoft 365 Setup Azure app registration + device-code auth
[Migrating from OpenClaw](docs/Migration from openclaw.md) Import your data in 30 min

๐Ÿ™ Acknowledgements

Anthropic ยท aiogram ยท neonize ยท discord.py ยท Twilio ยท Deepgram ยท ElevenLabs ยท Playwright ยท fal.ai ยท Rich ยท Typer ยท OpenClaw โ€” for proving personal AI agents are what people want ยท Every beta tester and contributor who helped ship this


๐Ÿ“œ License: MIT โ€” LICENSE ยท ๐Ÿ” Security: Security Policy โ€” do not open public issues for vulnerabilities


๐Ÿฆ€ Built with Python.

pincer.sh ยท GitHub ยท Discord ยท Twitter

If Pincer is useful to you, consider giving it a โญ โ€” it helps others discover the project.

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

pincer_agent-0.7.6.tar.gz (77.2 MB view details)

Uploaded Source

Built Distribution

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

pincer_agent-0.7.6-py3-none-any.whl (430.8 kB view details)

Uploaded Python 3

File details

Details for the file pincer_agent-0.7.6.tar.gz.

File metadata

  • Download URL: pincer_agent-0.7.6.tar.gz
  • Upload date:
  • Size: 77.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pincer_agent-0.7.6.tar.gz
Algorithm Hash digest
SHA256 e6d9d84e154b037e3353c41173650741e47a198ff2987510a5b051895c136655
MD5 01f07fc6303ec3583eecfd6f10a351d2
BLAKE2b-256 4a1aee25eac25b16e861e5483343153e13878de7293961c0f033a4aa86315bb4

See more details on using hashes here.

File details

Details for the file pincer_agent-0.7.6-py3-none-any.whl.

File metadata

  • Download URL: pincer_agent-0.7.6-py3-none-any.whl
  • Upload date:
  • Size: 430.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for pincer_agent-0.7.6-py3-none-any.whl
Algorithm Hash digest
SHA256 cfd1c14bdbc8f58bcc9fa2fb100115098d4f57d3b7bc73b1729f60432d67977d
MD5 7184c9cc94d267871e5d3ca5ca471e89
BLAKE2b-256 bf168eec9018611d91370ce6f7c721e0d264d2fbd32dbd65749df62e1f302f53

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