Skip to content

[integrations] Telegram capture#43

Open
alanshurafa wants to merge 2 commits intoNateBJones-Projects:mainfrom
alanshurafa:contrib/alanshurafa/telegram-capture
Open

[integrations] Telegram capture#43
alanshurafa wants to merge 2 commits intoNateBJones-Projects:mainfrom
alanshurafa:contrib/alanshurafa/telegram-capture

Conversation

@alanshurafa
Copy link
Contributor

Summary

  • Adds Telegram as a capture interface for Open Brain, complementing the existing Slack integration
  • Complete step-by-step guide matching the Slack integration's structure and depth
  • Includes full Edge Function code (Deno/Supabase), credential tracker, cost section, and troubleshooting
  • Mobile-first design: lightweight, works with spotty connections, supports voice-to-text

Why Telegram?

Telegram fills the mobile capture gap. Slack is great at a desk, but Telegram is lighter on phones, works offline (messages queue), and has built-in voice-to-text — ideal for capturing thoughts on the go.

What's Included

  • integrations/telegram-capture/metadata.json — OB1-format metadata
  • integrations/telegram-capture/README.md — Full walkthrough with 5 numbered steps:
    1. Create a Telegram bot (via @Botfather)
    2. Get your Chat ID
    3. Deploy the Edge Function (with full inline TypeScript code)
    4. Set the webhook (one curl command)
    5. Test it

Production Tested

This integration is running in production on my personal Open Brain instance (ExoCortex) with ~75,000 thoughts. The production version has additional features (duplicate detection, sensitivity classification, structured capture formats, event logging) that can be upstreamed in future PRs if there's interest.

Test plan

  • metadata.json passes automated review checks (required fields, valid JSON)
  • README includes all required sections (Prerequisites, Credential Tracker, Steps, Expected Outcome, Troubleshooting)
  • No credentials or secrets in any file
  • All changes scoped to integrations/telegram-capture/
  • PR title follows [category] description format

🤖 Generated with Claude Code

@justfinethanku
Copy link
Collaborator

Saw your Discord post — impressive work across all of these. I'm going to personally review each one. Not today, but they're on my list.

Copy link
Collaborator

@justfinethanku justfinethanku left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review of PR #43: [integrations] Telegram capture

What's Good

This is a high-quality contribution that shows clear attention to the contribution standards:

  1. Excellent documentation - The README is thorough, well-structured, and follows all required sections (Prerequisites, Credential Tracker, Steps, Expected Outcome, Troubleshooting)
  2. Production-tested - The author is running this in production with 75,000+ thoughts, which is strong validation
  3. Complete metadata.json - All required fields are present and properly formatted
  4. Security-conscious - Uses environment variables correctly, no hardcoded credentials
  5. Safe SQL - No DROP, TRUNCATE, or other dangerous operations
  6. Correct folder structure - Lives in integrations/telegram-capture/ as expected
  7. Proper PR title format - Follows [category] description convention
  8. Mobile-first value prop - Fills a real gap (mobile capture with voice-to-text support)
  9. Clear cost section - Helpful transparency about OpenRouter API costs

Issues Found

Critical (must fix before merge):

  1. MCP server pattern violation - The Edge Function code is correct and follows the remote MCP pattern, but the README needs to explicitly state that this does NOT require modifying claude_desktop_config.json or running a local MCP server. Per CONTRIBUTING.md line 194: "Extensions and integrations must use remote MCP via Supabase Edge Functions. No claude_desktop_config.json, no local Node.js stdio servers."

    Fix: Add a note in the Prerequisites or early in Step 3 clarifying: "This integration uses Supabase Edge Functions (remote execution) and does not require any MCP server configuration or modifications to Claude Desktop settings."

  2. Missing confirmation of automated review - The PR checklist references automated review checks, but gh pr checks shows no checks have run. This suggests the automated review workflow (.github/workflows/ob1-review.yml) hasn't executed yet.

    Fix: Ensure the automated review workflow runs and passes before merge.

Nice-to-haves (suggestions, not blockers):

  1. Credential tracker - The credential tracker is excellent, but could benefit from one additional field:

    Webhook confirmation URL: https://api.telegram.org/bot______/getWebhookInfo
    

    This would help users verify setup later.

  2. Cross-reference - Consider adding a "Related integrations" section linking to ../slack-capture/ since the README already mentions it in the intro.

  3. Troubleshooting expansion - The voice messages section is good but could add: "To enable transcription in Telegram: Settings → Chat Settings → Voice-to-Text"

Review Checklist

✅ Folder structure correct (integrations/telegram-capture/)
✅ Required files present (README.md + metadata.json)
✅ metadata.json has all required fields and valid values
✅ No credentials, API keys, or secrets in code
✅ SQL safety (no dangerous operations)
✅ README completeness (all sections present)
✅ PR title format correct
✅ No binary blobs over 1MB
⚠️ MCP pattern needs clarification (Edge Function code is correct, just needs documentation)
⚠️ Automated checks not yet run

Verdict: Minor fixes needed

This is a solid contribution that will be ready to merge once:

  1. The MCP pattern is clarified in the README (add one note stating this doesn't require local MCP server setup)
  2. The automated review checks pass

The author clearly understands the project standards and has built something valuable. The fixes are documentation clarifications, not code changes.

Great work, @alanshurafa! Looking forward to merging this once the minor items are addressed.

Send thoughts from Telegram, auto-embedded and classified into
Open Brain. Runs as a remote Supabase Edge Function.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@alanshurafa alanshurafa force-pushed the contrib/alanshurafa/telegram-capture branch from ec3ee9e to 88e80bc Compare March 25, 2026 14:00
Replace 5-type (observation, task, idea, reference, person_note) with
the canonical 8-type system used across Open Brain.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants