Skip to content

feat: add qq-ai-bot (QQ ↔ AI bridge with NapCat + ACP)#5834

Open
happysnaker wants to merge 2 commits into
getumbrel:masterfrom
happysnaker:add-qq-ai-bot
Open

feat: add qq-ai-bot (QQ ↔ AI bridge with NapCat + ACP)#5834
happysnaker wants to merge 2 commits into
getumbrel:masterfrom
happysnaker:add-qq-ai-bot

Conversation

@happysnaker

Copy link
Copy Markdown

App Submission: qq-ai-bot

What is qq-ai-bot?

A self-hosted QQ ↔ AI bridge that connects QQ messaging to any ACP-compatible AI agent via OneBot 11. It supports NapCat, LLOneBot, and provides a persistent session-aware bot with streaming progress updates.

Package design

  • Opens NapCat WebUI via Umbrel app proxy (port 6099, path /webui)
  • Deterministic password → WebUI token (WEBUI_TOKEN)
  • Auto-generates onebot11.json in pre-start hook (reverse WS to bot service)
  • Bundles qq-ai-bot bridge with mock ACP agent for immediate verification
  • No host networking, no privileged mode, no Docker socket
  • Persistent sessions under ${APP_DATA_DIR}

Tested

  • NapCat WebUI accessible at http://<ip>:6099/webui
  • qq-ai-bot /readyz health endpoint responding
  • Pre-start hook generates valid onebot11.json
  • Container restarts preserve sessions

Screenshots

NapCat WebUI Login
QQ Bot in Action

Self-hosted QQ ↔ AI bridge for OneBot 11 / NapCat / LLOneBot
and ACP-compatible agents.

- Opens NapCat WebUI via Umbrel app proxy
- Bundles qq-ai-bot bridge service with mock ACP agent
- Deterministic password → WebUI token
- Auto-generates onebot11.json config on first start
- Persistent sessions across restarts
- Multi-arch images (amd64 + arm64)

Tested with:
- NapCat Docker v4.18.7 (verified WebUI at port 6099)
- qq-ai-bot v0.1.4 (verified /readyz health endpoint)
- Full pre-start hook: config generation + permission fixup
@happysnaker

Copy link
Copy Markdown
Author

Follow-up evidence for the packaged image:

qq-ai-bot now has a stable v0.1.7 release plus passing arm64 QEMU smoke evidence.

The smoke artifact confirms the linux/arm64 image boots and serves /readyz, /status, and /metrics. This should make the app-store packaging path stronger for both x86 and ARM self-hosted environments.

@nmfretz

nmfretz commented Jul 17, 2026

Copy link
Copy Markdown
Member

Thanks for the submission @happysnaker, and sorry for the delay on my end!

I want to make sure I’m understanding the intended setup flow correctly. It looks like the qq-ai-bot package currently starts the built-in mock ACP agent, and I couldn’t find a user-facing way to configure or connect a real agent without SSH access or modifying the installed Compose file.

Is there a supported setup path I’m missing? If so, could you explain how an Umbrel user would go from a fresh install to a working real AI agent? If there isn’t one yet, we’d need that user-facing setup flow before we could move forward with the app.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

question Further information is requested

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants