it just takes one tap
Tap is an AI assistant built around Farcaster and onchain data to make it easier to find information and take actions. outputs are optimized to show widgets that the user can use to learn more or take an action directly from the chat (eg. RSVP to an event, take an onchain action, send a message etc).
built by Dylan Steck
The core foundation of Tap is built on top of:
- Next.js
- shadcn UI
- Drizzle ORM
- Postgres
- Vercel AI SDK
- Anthropic Claude (via AI SDK)
- Workflow DevKit
- NextAuth
Tap leverages LLM tool calling to power the core of its functionality. The following tools are currently supported:
- Farcaster (using Neynar APIs)
- ENS Data
- Events.xyz
- Bountycaster
- Icebreaker
- Nouns Builder
- Clanker
- Zapper
For a further understanding of how the assistant tools are defined / to learn how to add your own tool, check out lib/ai/miniapp-system-prompt.ts and the API catalog in lib/apis/catalog.ts.
We welcome contributions of all kinds, especially those that introduce new tools/widgets! Here are the main guidelines for contributing:
- Follow the traditional conventions of the repo (eg: add a new environment variable to
.env.exampleif you need to add one, follow the schema for adding other tools, don't add excessive comments, etc) - Check out
AGENTS.mdfor project conventions and style guidelines. - Open a pull request that succinctly describes your changes.
- If you need help or have questions, feel free to reach out to me on Farcaster or tag me in a GitHub discussion.
Thanks for your support in making Tap better!
You will need to use the environment variables defined in .env.example to run Tap.
Note: You should not commit your
.envfile or it will expose secrets that will allow others to control access to your various AI and authentication provider accounts.
pnpm install
pnpm db:migrate
pnpm devTap should now be running on localhost:3000.
Originally forked from the Next.js AI Chatbot Starter Template