Skip to main content

PoCo: Pocket Coding for Feishu

Project description

PoCo

中文说明

PoCo (Pocket-Coding) is a bot runtime that connects different coding agents to workplace chat software.

It currently supports Codex, Claude Code, and Feishu bots.

Quick Start

See Quick Start.

How It Works

  • DM with the bot: management console
  • Group chat with the bot: project workspace
  • Each project group gets its own worker process
  • Each project is configured from the DM console card
  • PoCo uses Feishu long-connection mode, so no public callback URL is required

Usage

DM console:

  • send poco
  • use the card UI to create a project and manage projects

Project group:

  • just talk to the agent
  • if you want to send an image, send one Feishu post message that contains both the image and the text prompt

Provider

  • codex: fully implemented through codex app-server
  • claude: implemented through the Claude Code CLI with streamed JSON output

Current provider notes:

  • Codex is the default runtime path
  • Claude currently supports session attach, image input, and streamed replies

TUI

The TUI is a two-panel terminal UI:

  • left panel: logo and runtime summary
  • right panel: the current interaction panel
  • bottom: an input line that is only enabled when a config field needs text input

Shortcuts:

  • Ctrl+R: Save and restart
  • q: go back one level
  • ↑ / ↓: move in the main menu or config menu
  • Enter: open the selected item
  • Esc: go back one level

The default home screen is menu-driven:

  • the right panel shows:
    • Agent & Model
    • Bot (feishu)
    • PoCo
    • Language
    • Quit
  • use ↑ / ↓ to select an item
  • press Enter to open it

Top-level items open their config sections directly:

  • the right panel turns into a selection menu
  • ↑ / ↓ moves between sections or fields
  • Enter opens the current selection
  • Esc returns to the previous level
  • Language lets you switch between English and Chinese
  • Bot (feishu) contains Feishu settings such as App ID and App Secret
  • Agent & Model contains codex and claude
  • claude opens a provider menu first
  • choose a provider such as anthropic, minimax, deepseek, or kimi
  • then edit that provider's base_url, auth_token, model, and extra_env
  • model opens another menu; pick a model first, then run set_as_default
  • extra_env also opens a submenu; manage env entries one by one instead of editing raw JSON
  • show opens the current config in a scrollable view
  • the bottom input line is only active while editing a text field

Files

  • Workspace bindings: ~/.config/poco/workspaces.json
  • Per-bot config file: ~/.config/poco/bindings/<app_id>/config.json
  • Per-bot state directory: ~/.local/state/poco/<app_id>/
  • Legacy default config/state are still under:
    • ~/.config/poco/config.json
    • ~/.local/state/poco/

Development

Build packages:

uv build

Quick syntax check:

uv run python -m py_compile poco/__init__.py poco/app.py poco/runtime.py poco/relay/app.py poco/config/store.py poco/tui/app.py

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

pocket_coding-0.3.0.tar.gz (60.5 kB view details)

Uploaded Source

Built Distribution

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

pocket_coding-0.3.0-py3-none-any.whl (72.3 kB view details)

Uploaded Python 3

File details

Details for the file pocket_coding-0.3.0.tar.gz.

File metadata

  • Download URL: pocket_coding-0.3.0.tar.gz
  • Upload date:
  • Size: 60.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.14

File hashes

Hashes for pocket_coding-0.3.0.tar.gz
Algorithm Hash digest
SHA256 2cf20cee5f17d2b9fd20e24cc57e66f1d21c0a7bdc6b202b9c8063770273db1b
MD5 ac6c7502c786ef1f48263fcdb187f6c4
BLAKE2b-256 3f677e197b670aee738bf8798fb9b5bf6d882b381bd0719245c4bffcfd983aab

See more details on using hashes here.

File details

Details for the file pocket_coding-0.3.0-py3-none-any.whl.

File metadata

File hashes

Hashes for pocket_coding-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3d32b2b284eaf87c4c169ffa0adfb24b02eb1785acf16fafa644f21ce4d1d6ff
MD5 e55e8e94933e9e8379a95727bd95fb67
BLAKE2b-256 b2bccc5a3f64230820d0197907cf0dcfec5a4491052fe4562765dce122a8901d

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