Skip to content

toba/beans

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🫘 This is a custom fork of Hendrik Mans excellent beans (prepared any way you like).

It adds optional, lazy synchronization with

  • GitHub issues
  • ClickUp tasks

and makes it a little easier to configure a desktop native markdown editor to be launched from the TUI.

For all that's awesome about beans, check out Hendrik's work.

Installation

go install github.com/toba/beans@latest

Add the following hooks to your project's .claude/settings.json file:

{
  "hooks": {
    "SessionStart": [
      { "hooks": [{ "type": "command", "command": "beans prime" }] }
    ],
    "PreCompact": [
      { "hooks": [{ "type": "command", "command": "beans prime" }] }
    ]
  }
}

ClickUp Integration

Setup

  1. Get a ClickUp API Token

    • Go to ClickUp Settings > Apps > API Token
    • Generate a personal token
    • Set CLICKUP_TOKEN environment variable
  2. Find your List ID

    • Open the list in ClickUp
    • The URL format is: https://app.clickup.com/{team_id}/v/li/{list_id}
    • Copy the list_id portion
  3. Configure .beans.yml

    sync:
      clickup:
        enabled: true
        list_id: "your-list-id"
  4. Optional: Custom Fields

    • Create Date/Text fields in ClickUp UI
    • Run beans clickup fields to get field UUIDs
    • Add to config:
      custom_fields:
        bean_id: "uuid"      # Text field for bean ID
        created_at: "uuid"   # Date field
        updated_at: "uuid"   # Date field
  5. Optional: User Mappings (for @mentions)

    • Run beans clickup users to get user IDs
    • Add to config:
      users:
        username: 12345678

Commands

  • beans clickup sync [bean-id...] - Sync beans to ClickUp
  • beans clickup link <bean-id> <task-id> - Link existing task
  • beans clickup unlink <bean-id> - Remove link
  • beans clickup status - Show sync status
  • beans clickup fields - List custom fields
  • beans clickup users - List workspace members

Full Config Example

sync:
  clickup:
    enabled: true
    list_id: "901234567890"

    # Assignee for new tasks (optional)
    # - Not set: assigns to API token owner (default)
    # - Set to user ID: assigns to that user
    # - Set to 0: creates unassigned tasks
    assignee: 12345678

    custom_fields:
      bean_id: "03efda77-c7a0-..."
      created_at: "a1b2c3d4-..."
      updated_at: "e5f6g7h8-..."

    users:
      jason: 12345678
      alice: 87654321

    status_mapping:      # Optional overrides
      draft: "backlog"
      todo: "to do"
      in-progress: "in progress"
      completed: "complete"

    priority_mapping:    # Optional overrides
      critical: 1        # Urgent
      high: 2
      normal: 3
      low: 4
      deferred: 4

    sync_filter:
      exclude_status: ["scrapped", "completed"]

License

This project is licensed under the Apache-2.0 License. See the LICENSE file for details.

About

A CLI-based, flat-file issue tracker for humans and robots. 🤖

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.1%
  • Go Template 0.9%