Koffie aanbieding deze week: alle supermarkten
Welke koffie is deze week in de aanbieding of in de bonus? Nu 192 aanbiedingen bij 14 supermarkten, tot 50% korting, met prijs per kilo, cup en pad.
Translation pending
Ecbot is an open-source AI agent for shops that sell in chat. Set it up once, answer on Messenger, Zalo, WhatsApp and Telegram, and hand off to staff.
CommerceTypeScript · PythonGitHub @blackmouse572OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Open source AI chat-agent engine, omnichannel, alternative to Intercom, Zendesk, Chatwoot, ChatBase.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗The open-source AI sales agent for shops that sell in chat.
Your customer asked about a dress on Facebook, ordered it on WhatsApp, and is now asking on Telegram where it is. To most chatbots, that's three strangers, and your staff scroll through three apps to piece the story together.
Ecbot keeps one profile per person across multiple channels, so the agent and your staff pick up where the last chat stopped. The agent also finishes the sale. It checks stock, creates the order and books delivery through your own API, then hands the chat to a person when a customer gets upset or asks for one.
It runs on your own server.
Who it is for
| Channel | Status |
|---|---|
| Facebook Messenger | Shipped |
| Zalo OA | Shipped |
| Telegram | Shipped |
| WhatsApp Business | Shipped |
| Threads | Built, hidden until configured, goes live after Meta App Review |
| Website widget | Shipped |
| REST API channel | Shipped |
| Built, hidden until configured, goes live after Meta App Review | |
| TikTok Shop | Roadmap, adapter slot open |
| Shopee | Roadmap, adapter slot open |
Adapters are self-contained (apps/api/src/modules/platform/adapters/). Two slots are open and specced, which makes them good first contributions.
Also included: input and output guardrails, rule-based follow-up messages, workspaces with roles and invitations, API keys, an activity log, and token streaming to the channel.
Self-hosted Ecbot has every feature Ecbot Cloud has. You supply two things: an LLM key (Ecbot routes through OpenRouter, so set OPENROUTER_API_KEY and pay the provider directly) and, for Facebook, Instagram or Zalo, your own platform app with messaging permissions approved. Telegram, the website widget and the REST API channel need no approval, so start with one of those.
This runs Ecbot for development. To run it on a server, see Self-hosting: docker compose --profile full up -d --build starts everything behind Caddy with HTTPS and creates the schema for you.
Requires Node 20+, pnpm 9, Docker, and uv with Python 3.12+ (for apps/ai).
git clone https://github.com/blackmouse572/ecbot.git
cd ecbot
pnpm install
1. Configure.
pnpm setup:local
Creates apps/api, apps/app and apps/ai .env files and fills everything that only has to be consistent: JWT keys, CORS origins, internal secrets, and the API key pairs the apps share. It prompts only for values it cannot generate. OPENROUTER_API_KEY is the one you must supply, because Ecbot cannot call an LLM without it. It never overwrites a value you set, so you can re-run it. Installation lists what it sets, its options and troubleshooting. Run it before Compose, because the JWKS server serves the keys it writes.
2. Bring up the infrastructure. This starts Postgres with pgvector, Redis, a JWKS server and a Cloud Tasks emulator.
docker compose up -d
To use a hosted Postgres instead (Neon, Supabase, RDS), point DATABASE_URL at it and ignore the database container. The database needs the pgvector extension, because Ecbot stores relational data and embeddings together.
3. Create the schema, and optionally seed demo data.
pnpm --filter api migration:up
pnpm --filter api migrate:seed # demo countries, API keys, roles and users
migration:up applies the migrations in apps/api/migrations/ to an empty database and records each one, so later upgrades use the same command. Do not run schema:create. It builds the tables without recording a migration, and your next upgrade would replay the whole chain.
4. Run the apps.
pnpm dev:app # api + app
pnpm --filter ai dev # AI service, in a second shell
| App | http://localhost:5173 |
| API | http://localhost:8080 |
| API docs (Swagger) | http://localhost:8080/docs |
| AI service | http://localhost:8000 |
To run the apps in containers too, use the Compose profiles: docker compose --profile app up for api + app, --profile full to include the AI service. Both serve the app on http://localhost and run the migrations first.
The seed inserts demo accounts with well-known passwords and prints generated API keys once. It refuses to run with
NODE_ENV=productionorAPP_ENV=production. Change the demo passwords before you expose an instance.
A Turborepo + pnpm workspace.
Apps
api: the backend (NestJS 11, PostgreSQL via MikroORM, Redis and Cloud Tasks). It owns channels, conversations, knowledge, tools and the operator API.app: the operator UI (React 19, Vite, TanStack Query, React Router v7).ai: the agent runtime (Python 3.12, FastAPI, LangChain). It handles generation, RAG and guardrails, and api streams from it over HTTP.edge: an optional Cloudflare Worker that receives platform webhooks and forwards them. Self-hosting works without it, so point webhooks straight at api.Packages: @repo/ui (shared components), @repo/client (API client generated from the OpenAPI schema), @repo/auth, plus shared oxlint and TypeScript configs.
pnpm dev # everything
pnpm lint # oxlint
pnpm check-types # tsc --noEmit
pnpm test:api # api unit tests
pnpm generate:client # regenerate @repo/client after changing API DTOs or routes
Conventions live in AGENTS.md and .github/instructions/. Read CONTEXT.md for the domain vocabulary before you name anything.
Start with CONTRIBUTING.md. Adapter slots are labelled good first issue.
Ask questions and share what you build on Discord.
Report vulnerabilities privately, following SECURITY.md. Do not open a public issue.
AGPL-3.0. apps/api began as a fork of ack-nestjs-boilerplate (MIT); see NOTICE.
"Ecbot" and the Ecbot logo are trademarks and fall outside the licence. See TRADEMARK.md.