Sponsored by Deepsite.site

Cloudflare AI

Created By
alvinmrrry8 months ago
Content

Cloudflare AI

This repository contains various packages and demo apps related consuming Cloudflare's AI offerings on the client-side. It is a monorepo powered by Nx and Changesets.

Packages

Local Development

  1. Clone the repository.

    git clone git@github.com:cloudflare/ai.git
    
  2. Install Dependencies.

    From the root directory, run:

    cd ai
    npm install
    
  3. Develop.

    To start a development server for a specific app (for instance, tool-calling):

    npx nx dev tool-calling
    

    Ideally all commands should be executed from the repository root with the npx nx prefix. This will ensure that the dependency graph is managed correctly, e.g. if one package relies on the output of an other.

  4. Testing and Linting.

  • To execute your continuous integration tests for a specific project (e.g., workers-ai-provider):

    npx nx test:ci workers-ai-provider
    
  • To lint a specific project:

    npx nx lint my-project
    
  • To run a more comprehensive sweep of tasks (lint, tests, type checks, build) against one or more projects:

    npx nx run-many -t lint test:ci type-check build -p "my-project other-project"
    
  1. Other Nx Tasks.
  • build: Compiles a project or a set of projects.
  • test: Runs project tests in watch mode.
  • test:ci: Runs tests in CI mode (no watch).
  • test:smoke: Runs smoke tests.
  • type-check: Performs TypeScript type checks.

Creating a New Demo App

In order to scaffold a new demo app, you can use the create-demo script. This script will create a new demo app in the demos directory.

npm run create-demo <demo-name>

After creating the app, npm install will be run to install the dependencies, and npx nx cf-typegen <demo-name> will be run to generate the types for the demo app. Then it's simply a case of starting the app with:

npx nx dev <demo-name>

Contributing

We appreciate contributions and encourage pull requests. Please follow these guidelines:

  1. Project Setup: After forking or cloning, install dependencies with npm install.
  2. Branching: Create a new branch for your feature or fix.
  3. Making Changes:
  • Add or update relevant tests.
  • On pushing your changes, automated tasks will be run (courtesy of a Husky pre-push hook).
  1. Changesets: If your changes affect a published package, run npx changeset to create a changeset. Provide a concise summary of your changes in the changeset prompt.
  2. Pull Request: Submit a pull request to the main branch. The team will review it and merge if everything is in order.

Release Process

This repository uses Changesets to manage versioning and publication:

  1. Changeset Creation: Whenever a change is made that warrants a new release (e.g., bug fixes, new features), run:

    npx changeset
    

    Provide a clear description of the changes.

  2. Merging: Once the changeset is merged into main, our GitHub Actions workflows will:

  • Detect the changed packages, and create a Version Packages PR.
  • Increment versions automatically (via Changesets).
  • Publish any package that has a version number to npm. (Demos and other internal items do not require versioning.)
  1. Publication: The release workflow (.github/workflows/release.yml) will run on every push to main. It ensures each published package is tagged and released on npm. Any package with a version field in its package.json will be included in this process.

For any queries or guidance, kindly open an issue or submit a pull request. We hope this structure and process help you to contribute effectively.

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
CursorThe AI Code Editor
Playwright McpPlaywright MCP server
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
WindsurfThe new purpose-built IDE to harness magic
Serper MCP ServerA Serper MCP Server
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
Tavily Mcp
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
ChatWiseThe second fastest AI chatbot™
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Amap Maps高德地图官方 MCP Server
DeepChatYour AI Partner on Desktop
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。