Skip to content

feat(gateway): add Feishu / Lark platform setup to interactive setup wizard - #7918

Closed
bugmaker2 wants to merge 2 commits into
NousResearch:mainfrom
bugmaker2:feat/feishu-setup
Closed

feat(gateway): add Feishu / Lark platform setup to interactive setup wizard#7918
bugmaker2 wants to merge 2 commits into
NousResearch:mainfrom
bugmaker2:feat/feishu-setup

Conversation

@bugmaker2

@bugmaker2 bugmaker2 commented Apr 11, 2026

Copy link
Copy Markdown

What does this PR do?

Adds the Feishu / Lark messaging platform to the hermes setup gateway interactive setup wizard. Previously, Feishu/Lark was fully implemented as a platform adapter (gateway/platforms/feishu.py) with complete runtime support — but had no entry in the interactive setup flow. It was invisible in the checklist UI, and users had no guided way to configure it without manually editing ~/.hermes/.env.

This change adds Feishu/Lark to the platform registry in setup.py, wires it through to the existing Feishu platform definition in gateway.py's _PLATFORMS (which already had setup_instructions, vars, token_var, etc.), and updates the any_messaging / section-summary helpers to recognize Feishu as a configured platform.

Type of Change

  • ✨ New feature (non-breaking change that adds functionality)
  • 📝 Documentation update

Changes Made

  • hermes_cli/gateway.py: Added _setup_feishu() function — looks up the existing Feishu platform entry from _PLATFORMS and delegates to _setup_standard_platform() for the guided setup flow
  • hermes_cli/setup.py:
    • Added _setup_feishu() wrapper that delegates to gateway._setup_feishu
    • Added ("Feishu / Lark", "FEISHU_APP_ID", _setup_feishu) to _GATEWAY_PLATFORMS — the checklist registry powering hermes setup gateway
    • Added get_env_value("FEISHU_APP_ID") to any_messaging check (controls the "Messaging platforms configured!" banner)
    • Added FEISHU_APP_ID check in _get_section_config_summary for the gateway section (controls whether the setup wizard skips or runs the gateway section)
  • website/docs/user-guide/messaging/index.md: Added FEISHU_ALLOWED_USERS to the security allowlist examples

How to Test

  1. Activate the local development environment:
    cd hermes-agent && source .venv/bin/activate
  2. Run the interactive gateway setup:
    hermes setup gateway
  3. Verify Feishu / Lark appears in the checklist alongside Telegram, Discord, Weixin, etc.
  4. Select Feishu / Lark, confirm the guided setup flow runs correctly:
    • App ID → App Secret → Domain → Connection Mode → Allowed Users → Home Channel
  5. Confirm ~/.hermes/.env contains the saved FEISHU_APP_ID, FEISHU_APP_SECRET, etc.
  6. Run hermes setup again — the gateway section should show "Feishu" as already configured and offer to skip it.

Checklist

Code

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits (feat(gateway):, etc.)
  • I've searched for existing PRs to make sure this isn't a duplicate
  • My PR contains only changes related to this fix/feature (no unrelated commits)
  • I've tested on my platform: macOS

Documentation & Housekeeping

  • I've updated relevant documentation (website/docs/user-guide/messaging/index.md) — N/A for others
  • I've updated cli-config.yaml.example if I added/changed config keys — N/A
  • I've updated CONTRIBUTING.md or AGENTS.md if I changed architecture or workflows — N/A
  • I've considered cross-platform impact (Windows, macOS) — purely CLI setup flow, no platform-specific logic
  • I've updated tool descriptions/schemas if I changed tool behavior — N/A

Screenshots

Before (Feishu missing from checklist):

Select platforms to configure:
  [✓] Telegram  (configured)
  [ ] Discord
  [ ] Slack
  ...
  → [ ] Webhooks (GitHub, GitLab, etc.)

After (Feishu / Lark visible):

Select platforms to configure:
  [✓] Telegram  (configured)
  [ ] Feishu / Lark         ← newly visible
  [ ] Discord
  ...
  → [ ] Webhooks

Setup flow for Feishu / Lark:

  ─── 🪽 Feishu / Lark Setup ───

    1. Go to https://open.feishu.cn/ (or https://open.larksuite.com/ for Lark)
    2. Create an app and copy the App ID and App Secret
    ...

  App ID: cli_xxx
✓   Saved FEISHU_APP_ID
  App Secret: ...
✓   Saved FEISHU_APP_SECRET
  Domain — feishu or lark (default: feishu): feishu
✓   Saved FEISHU_DOMAIN
  Connection mode — websocket or webhook (default: websocket): websocket
✓   Saved FEISHU_CONNECTION_MODE
  ...
✓ 🪽 Feishu / Lark configured!

Add Feishu/Lark to the gateway platform list with standard platform
setup flow, including auto-setup detection and config summary display.

Made-with: Cursor
teknium1 added a commit that referenced this pull request Apr 11, 2026
Wire Signal, Email, SMS (Twilio), DingTalk, Feishu/Lark, and WeCom into
the hermes setup gateway interactive wizard. These platforms all had
working adapters and _PLATFORMS entries in gateway.py but were invisible
in the setup checklist — users had to manually edit .env to configure them.

Changes:
- gateway.py: Add _setup_email/sms/dingtalk/feishu/wecom functions
  delegating to _setup_standard_platform (Signal already had a custom one)
- setup.py: Add wrapper functions for all 6 new platforms
- setup.py: Add all 6 to _GATEWAY_PLATFORMS checklist registry
- setup.py: Add missing env vars to any_messaging check
- setup.py: Add all missing platforms to _get_section_config_summary
  (was also missing Matrix, Mattermost, Weixin, Webhooks)
- docs: Add FEISHU_ALLOWED_USERS and WECOM_ALLOWED_USERS examples

Incorporates and extends the work from PR #7918 by bugmaker2.
@teknium1

Copy link
Copy Markdown
Contributor

Merged via PR #7949, which incorporates your Feishu setup wizard addition and extends it to all 6 missing platforms (Signal, Email, SMS, DingTalk, Feishu/Lark, WeCom). Your implementation pattern of delegating to _setup_standard_platform() was used for all of them. Thanks for identifying the gap!

@teknium1 teknium1 closed this Apr 11, 2026
teknium1 added a commit that referenced this pull request Apr 11, 2026
…7949)

Wire Signal, Email, SMS (Twilio), DingTalk, Feishu/Lark, and WeCom into
the hermes setup gateway interactive wizard. These platforms all had
working adapters and _PLATFORMS entries in gateway.py but were invisible
in the setup checklist — users had to manually edit .env to configure them.

Changes:
- gateway.py: Add _setup_email/sms/dingtalk/feishu/wecom functions
  delegating to _setup_standard_platform (Signal already had a custom one)
- setup.py: Add wrapper functions for all 6 new platforms
- setup.py: Add all 6 to _GATEWAY_PLATFORMS checklist registry
- setup.py: Add missing env vars to any_messaging check
- setup.py: Add all missing platforms to _get_section_config_summary
  (was also missing Matrix, Mattermost, Weixin, Webhooks)
- docs: Add FEISHU_ALLOWED_USERS and WECOM_ALLOWED_USERS examples

Incorporates and extends the work from PR #7918 by bugmaker2.
Tommyeds pushed a commit to Tommyeds/hermes-agent that referenced this pull request Apr 12, 2026
…ousResearch#7949)

Wire Signal, Email, SMS (Twilio), DingTalk, Feishu/Lark, and WeCom into
the hermes setup gateway interactive wizard. These platforms all had
working adapters and _PLATFORMS entries in gateway.py but were invisible
in the setup checklist — users had to manually edit .env to configure them.

Changes:
- gateway.py: Add _setup_email/sms/dingtalk/feishu/wecom functions
  delegating to _setup_standard_platform (Signal already had a custom one)
- setup.py: Add wrapper functions for all 6 new platforms
- setup.py: Add all 6 to _GATEWAY_PLATFORMS checklist registry
- setup.py: Add missing env vars to any_messaging check
- setup.py: Add all missing platforms to _get_section_config_summary
  (was also missing Matrix, Mattermost, Weixin, Webhooks)
- docs: Add FEISHU_ALLOWED_USERS and WECOM_ALLOWED_USERS examples

Incorporates and extends the work from PR NousResearch#7918 by bugmaker2.
angelburgosrosado pushed a commit to angelburgosrosado/hermes-agent that referenced this pull request Apr 28, 2026
Wire Signal, Email, SMS (Twilio), DingTalk, Feishu/Lark, and WeCom into
the hermes setup gateway interactive wizard. These platforms all had
working adapters and _PLATFORMS entries in gateway.py but were invisible
in the setup checklist — users had to manually edit .env to configure them.

Changes:
- gateway.py: Add _setup_email/sms/dingtalk/feishu/wecom functions
  delegating to _setup_standard_platform (Signal already had a custom one)
- setup.py: Add wrapper functions for all 6 new platforms
- setup.py: Add all 6 to _GATEWAY_PLATFORMS checklist registry
- setup.py: Add missing env vars to any_messaging check
- setup.py: Add all missing platforms to _get_section_config_summary
  (was also missing Matrix, Mattermost, Weixin, Webhooks)
- docs: Add FEISHU_ALLOWED_USERS and WECOM_ALLOWED_USERS examples

Incorporates and extends the work from PR NousResearch#7918 by bugmaker2.
aj-nt pushed a commit to aj-nt/hermes-agent that referenced this pull request May 1, 2026
…ousResearch#7949)

Wire Signal, Email, SMS (Twilio), DingTalk, Feishu/Lark, and WeCom into
the hermes setup gateway interactive wizard. These platforms all had
working adapters and _PLATFORMS entries in gateway.py but were invisible
in the setup checklist — users had to manually edit .env to configure them.

Changes:
- gateway.py: Add _setup_email/sms/dingtalk/feishu/wecom functions
  delegating to _setup_standard_platform (Signal already had a custom one)
- setup.py: Add wrapper functions for all 6 new platforms
- setup.py: Add all 6 to _GATEWAY_PLATFORMS checklist registry
- setup.py: Add missing env vars to any_messaging check
- setup.py: Add all missing platforms to _get_section_config_summary
  (was also missing Matrix, Mattermost, Weixin, Webhooks)
- docs: Add FEISHU_ALLOWED_USERS and WECOM_ALLOWED_USERS examples

Incorporates and extends the work from PR NousResearch#7918 by bugmaker2.
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…ousResearch#7949)

Wire Signal, Email, SMS (Twilio), DingTalk, Feishu/Lark, and WeCom into
the hermes setup gateway interactive wizard. These platforms all had
working adapters and _PLATFORMS entries in gateway.py but were invisible
in the setup checklist — users had to manually edit .env to configure them.

Changes:
- gateway.py: Add _setup_email/sms/dingtalk/feishu/wecom functions
  delegating to _setup_standard_platform (Signal already had a custom one)
- setup.py: Add wrapper functions for all 6 new platforms
- setup.py: Add all 6 to _GATEWAY_PLATFORMS checklist registry
- setup.py: Add missing env vars to any_messaging check
- setup.py: Add all missing platforms to _get_section_config_summary
  (was also missing Matrix, Mattermost, Weixin, Webhooks)
- docs: Add FEISHU_ALLOWED_USERS and WECOM_ALLOWED_USERS examples

Incorporates and extends the work from PR NousResearch#7918 by bugmaker2.
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…ousResearch#7949)

Wire Signal, Email, SMS (Twilio), DingTalk, Feishu/Lark, and WeCom into
the hermes setup gateway interactive wizard. These platforms all had
working adapters and _PLATFORMS entries in gateway.py but were invisible
in the setup checklist — users had to manually edit .env to configure them.

Changes:
- gateway.py: Add _setup_email/sms/dingtalk/feishu/wecom functions
  delegating to _setup_standard_platform (Signal already had a custom one)
- setup.py: Add wrapper functions for all 6 new platforms
- setup.py: Add all 6 to _GATEWAY_PLATFORMS checklist registry
- setup.py: Add missing env vars to any_messaging check
- setup.py: Add all missing platforms to _get_section_config_summary
  (was also missing Matrix, Mattermost, Weixin, Webhooks)
- docs: Add FEISHU_ALLOWED_USERS and WECOM_ALLOWED_USERS examples

Incorporates and extends the work from PR NousResearch#7918 by bugmaker2.
waefrebeorn pushed a commit to waefrebeorn/slermes that referenced this pull request Jul 2, 2026
…ousResearch#7949)

Wire Signal, Email, SMS (Twilio), DingTalk, Feishu/Lark, and WeCom into
the hermes setup gateway interactive wizard. These platforms all had
working adapters and _PLATFORMS entries in gateway.py but were invisible
in the setup checklist — users had to manually edit .env to configure them.

Changes:
- gateway.py: Add _setup_email/sms/dingtalk/feishu/wecom functions
  delegating to _setup_standard_platform (Signal already had a custom one)
- setup.py: Add wrapper functions for all 6 new platforms
- setup.py: Add all 6 to _GATEWAY_PLATFORMS checklist registry
- setup.py: Add missing env vars to any_messaging check
- setup.py: Add all missing platforms to _get_section_config_summary
  (was also missing Matrix, Mattermost, Weixin, Webhooks)
- docs: Add FEISHU_ALLOWED_USERS and WECOM_ALLOWED_USERS examples

Incorporates and extends the work from PR NousResearch#7918 by bugmaker2.
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