{
  "markdown": "<p align=\"center\">\n  <a href=\"https://noclick.com\">\n    <img src=\"docs/assets/logo-card.png\" alt=\"NoClick\" width=\"430\" />\n  </a>\n</p>\n\n<p align=\"center\">\n  <strong>Describe an agent. Watch it get built. Let it run.</strong><br />\n  Open-source workflow automation with AI agents at the core — a visual\n  canvas, ~160 integrations, and coding agents that can actually use your tools.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://noclick.com\">Website</a> ·\n  <a href=\"https://docs.noclick.com\">Docs</a> ·\n  <a href=\"./docs/self-hosting.md\">Self-hosting</a> ·\n  <a href=\"https://discord.com/invite/sHC2mrnss8\">Discord</a> ·\n  <a href=\"./CONTRIBUTING.md\">Contributing</a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/noclick\"><img alt=\"npm\" src=\"https://img.shields.io/npm/v/noclick?logo=npm&label=npm&color=CB3837\" /></a>\n  <a href=\"https://pypi.org/project/noclick/\"><img alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/noclick?logo=pypi&logoColor=white&label=PyPI&color=3775A9\" /></a>\n  <a href=\"./LICENSE\"><img alt=\"License: AGPL-3.0\" src=\"https://img.shields.io/badge/license-AGPL--3.0-2ea44f\" /></a>\n  <a href=\"https://discord.com/invite/sHC2mrnss8\"><img alt=\"Discord\" src=\"https://img.shields.io/badge/Discord-join%20us-5865F2?logo=discord&logoColor=white\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://railway.com/new/template/noclick?utm_medium=integration&amp;utm_source=button&amp;utm_campaign=noclick\"><img alt=\"Deploy on Railway\" src=\"https://railway.com/button.svg\" height=\"40\" /></a>\n  <a href=\"https://render.com/deploy?repo=https://github.com/noclickapp/noclick\"><img alt=\"Deploy to Render\" src=\"https://render.com/images/deploy-to-render-button.svg\" height=\"40\" /></a>\n  <a href=\"https://cloud.digitalocean.com/apps/new?repo=https://github.com/noclickapp/noclick/tree/main\"><img alt=\"Deploy to DigitalOcean\" src=\"https://www.deploytodo.com/do-btn-blue.svg\" height=\"40\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://noclick.com\">\n    <img src=\"docs/assets/demo.svg\" alt=\"Typing a prompt, the AI builder assembling a WhatsApp and Slack support agent on the canvas, the run executing with full observability, and the reply landing in WhatsApp\" width=\"860\" />\n  </a>\n</p>\n\n## Quick start\n\nOne line:\n\n```bash\n# macOS / Linux / WSL2 -- needs Docker: https://docs.docker.com/get-docker/\ncurl -fsSL https://noclick.com/install.sh | sh\n```\n\n```powershell\n# Windows PowerShell -- installs Docker Desktop itself; Windows restarts once\n# the first time, and the installer continues after you sign back in\nirm https://noclick.com/install.ps1 | iex\n```\n\nAlready have Docker, [Node.js](https://nodejs.org) 18+ and Git? The launcher\nthe Windows installer hands off to runs everywhere:\n\n```bash\nnpx noclick\n```\n\nOr by hand — the same thing, visibly:\n\n```bash\ngit clone --branch <tag> https://github.com/noclickapp/noclick.git && cd noclick\n./scripts/noclick-setup.sh\nNOCLICK_VERSION=<version> docker compose up -d\n```\n\nEach installer path fetches the latest release's source, generates this\ninstance's secrets — including the credential-encryption key, which is kept\nacross re-runs — and pulls that release's images: about 1.5 GB to download the first time,\nand nothing is compiled on your machine. Re-running updates in place. Pin a\nrelease with `NOCLICK_REF=<tag>` from the\n[releases page](https://github.com/noclickapp/noclick/releases);\n`NOCLICK_REF=main` runs the development line. The frontend image is built for\nthe default local URLs, so an install with other public URLs builds that one\nimage itself, and `NOCLICK_BUILD=1` builds everything from the checkout. Every\ninstaller option is documented at the top of [`install.sh`](./install.sh) and\n[`install.ps1`](./install.ps1).\n\nThen open the editor at [http://localhost:3000](http://localhost:3000).\n\n---\n\n## What is NoClick?\n\nNoClick lets you build automations on a visual canvas and run them on triggers —\nwebhooks, schedules, inbound email, or chat messages from Slack, WhatsApp and\nfriends. What makes it different is the agent layer: an AI agent node can drive\nreal coding harnesses (Claude Code, Codex, opencode, hermes, OpenClaw) and call\nyour connected integrations as tools, so an agent can read a Linear issue, work\nin a git repo, and post the result back to Slack.\n\nThis repository is the whole platform, open source under the AGPL: the\nworkflow engine, every integration node, the React editor, the realtime\ncollaboration layer, the AI workflow builder, and an MCP server. It's the same\ncode that runs [noclick.com](https://noclick.com), and it runs end to end on\nyour own machine with nothing held back.\n\n<p align=\"center\">\n  <img src=\"docs/assets/interface.webp\" alt=\"The NoClick editor: an AI build conversation on the left and the resulting support agent on the canvas — Gmail and Slack triggers feeding a claude-code agent that's wired to Gmail, Notion, Google Sheets and Slack as tools, all connected and green after a run\" width=\"900\" />\n</p>\n\n## What you can build\n\n- **Automations on a canvas** — chain ~160 integrations (Slack, Gmail, Notion,\n  Linear, HubSpot, Stripe, Postgres, Google Sheets, …) with branching,\n  iteration, filters, and code nodes.\n- **Triggers** — webhooks, cron schedules, inbound email, and app events from\n  Slack/Discord/HubSpot; channel-style agents that reply where they're spoken\n  to, with as many triggers per workflow as you need.\n- **AI agents with real tools** — wire integration nodes into an agent's tool\n  handle and it can call those operations directly. Agent nodes run either\n  in-process (any OpenAI/Anthropic/OpenRouter-compatible model) or as a coding\n  harness using your own installed CLI.\n- **Interfaces** — publish a form, dashboard, or chat over any workflow.\n- **Build with AI** — describe what you want and the builder assembles the\n  workflow on the canvas. It's also exposed over MCP, so you can point Claude\n  Code (or any MCP client) at your instance and have it build for you.\n\n## How it works\n\n1. **Describe it.** Type what you want into the builder — or point any MCP\n   client at your instance and let your coding agent do the describing.\n2. **The builder assembles it.** Nodes appear on the canvas wired to real\n   operations, asking only for what it genuinely needs: credentials, and the\n   choices only you can make.\n3. **It runs on triggers.** A message arrives, a webhook fires, a schedule\n   ticks — the workflow executes, agents call their tools, and results land\n   where you told them to. Every run records its tool calls, timings, and the\n   agent's response, so you can see exactly what happened.\n\n## Self-hosting\n\nThe installer above is the fast path. For a real deployment — your own Postgres,\nobject storage, OAuth apps for integrations, model providers, and the\nenvironment variables each side needs — read the\n**[self-hosting guide](./docs/self-hosting.md)**.\n\nThe deploy buttons above ask for nothing: Railway and Render create a Postgres\ndatabase next to the reviewed release image (DigitalOcean binds a managed\ncluster named `noclick-db` you create first), and the instance does the rest on\nfirst boot — it runs its own auth layer, prepares the database, and generates\nits own keys. Railway uses [`railway.template.json`](./railway.template.json),\nRender [`render.yaml`](./render.yaml), DigitalOcean\n[`.do/deploy.template.yaml`](./.do/deploy.template.yaml), and Fly\n[`fly.toml`](./fly.toml). See the\n**[hosted deployment guide](./docs/self-hosting.md#hosted-deployments)** for\nwhat each one provisions and where its secrets live.\n\nReleases are what you run: `main` moves with every upstream merge, tags are\ndeliberate cuts, and each tag publishes images to GHCR so the compose stack\npulls rather than builds. Pin with `NOCLICK_VERSION`.\n\n## Developing from source\n\nPrerequisites: Docker, the [Supabase CLI](https://supabase.com/docs/guides/cli),\nPython 3.12 (3.13 isn't supported yet — some pinned wheels don't build on it),\nNode.js 20 or newer, and pnpm 10.34.4 (or npm for running package scripts).\n\n```bash\npip install -r requirements.txt\nmake local\n```\n\nThat boots everything on your machine — a local Supabase (Postgres, auth,\nstorage), the backend, and the frontend — and prints a URL. Sign up with any\nemail; local auth confirms instantly. No cloud account, no API keys required to\nget to a running canvas.\n\n```bash\n# Backend\ncd backend && python server.py       # or: uvicorn server:web_app\npytest                               # test suite\n\n# Frontend\ncd frontend && npm run dev\nnpm run typecheck && npm run build && npm test\n\n# Database migrations\ncd infra && supabase migration up --local\n```\n\n## Architecture\n\n| Path | What lives there |\n|---|---|\n| `backend/nodes/` | Every integration node — one module per service, self-describing config schemas |\n| `backend/wss/` | Socket.IO event layer: handlers, typed events, the workflow execution engine |\n| `backend/coder/workflow/` | The XML workflow DSL, graph state, and the AI builder |\n| `backend/mcp_server.py` | MCP server exposing workflow construction to any MCP client |\n| `backend/utils/` | Shared services: webhooks, credentials, storage, relay, cron |\n| `frontend/app/` | Remix + Vite app: ReactFlow canvas, config panels, interface builder |\n| `infra/supabase/` | Database migrations |\n| `sdk/` | The `noclick` TypeScript SDK for embedding published workflows |\n\nNode config UIs are generated from the backend's Pydantic models, so adding an\nintegration is mostly writing one Python module — the editor picks it up.\n\n## NoClick Cloud\n\n[noclick.com](https://noclick.com) is the hosted platform. It runs this engine\nplus managed infrastructure: retained agent runtimes so turns resume instantly,\nscaled webhook and cron delivery, additional hosted builder capabilities, and\nmanaged storage and email. Self-hosted and cloud share the same workflow\nformat, so workflows move between them unchanged, and the cloud's operational\nlayer is what funds the open-source engine.\n\n## Contributing\n\nIssues and pull requests are welcome. Adding an integration node is the easiest\nplace to start: copy the closest existing node in `backend/nodes/`, register it\nin `backend/nodes/core/registry.py`, and the config UI generates itself.\n\n**[CONTRIBUTING.md](./CONTRIBUTING.md)** covers the architecture you need to know\nand the conventions this codebase enforces. `AGENTS.md` / `CLAUDE.md` carry the\nsame guidance for coding agents, so pointing Claude Code or Codex at a checkout\ngets you working changes rather than plausible-looking ones.\n\nCome say hello in **[Discord](https://discord.com/invite/sHC2mrnss8)** — it's the\nfastest way to get a question answered.\n\n## License\n\nNoClick Community is open source under the [GNU Affero General Public License,\nversion 3](./LICENSE) (`AGPL-3.0-only`). Run it, change it, and self-host it,\nat work or anywhere else. The one condition worth knowing before you fork: if\nyou modify NoClick and let other people use your modified version over a\nnetwork, you must offer them its source under the same license. That is what\nkeeps NoClick and its forks open.\n\nThe SDKs in [`sdk/typescript`](./sdk/typescript/LICENSE) and\n[`sdk/python`](./sdk/python/LICENSE) are **Apache-2.0**, so the components,\nexternal apps, and scripts you build against them carry no AGPL obligation,\nand neither does anything that talks to NoClick over its HTTP or MCP API.\nWorkflows, functions, and components you author with NoClick are yours: the\nlicense covers NoClick itself, not what you make with it.\n\nNeed NoClick under other terms, such as embedding it in a product you don't\nwant to open-source? Commercial licenses are available from\n[legal@noclick.com](mailto:legal@noclick.com). Names and logos are covered by\nthe [trademark policy](./TRADEMARKS.md), not the license. Releases up to\nv0.2.12 remain available under the Sustainable Use License 1.0 they shipped\nwith. This section is a summary; [LICENSE](./LICENSE) is the authority.\n",
  "bytes": 11886,
  "sha": "911d61f0ace65701525e529b504d44f852be2dcf70e6c9b362d186158e05d9c0",
  "repo_slug": "noclickapp/noclick",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_noclickapp_noclick_eb9b50cc/readme"
}