License Downloads GitHub Contributors Visit arcade-ai.com

Follow on X Follow on LinkedIn Join our Discord

DocsIntegrationsCookbookPython ClientJavaScript Client

## What is Arcade AI? [Arcade AI](https://arcade-ai.com?ref=github) offers developer-focused tooling and APIs designed to improve the capabilities of LLM applications and agents. By providing an authentication and authorization layer for agents and the tools agents use, Arcade AI connects agentic applications with your users' data and services - like accessing their Gmail, GitHub, Zoom, Spotify, LinkedIn, and more. To learn more, check out our [documentation](https://docs.arcade-ai.com). _Pst. hey, you, join our stargazers! It's free!_ GitHub stars ## Quickstart ### Requirements 1. An **[Arcade AI account](https://arcade-ai.typeform.com/early-access)** (current a waitlist) 2. **Python 3.10+**. Verify your Python version by running `python --version` or `python3 --version` in your terminal 3. **pip**, the Python package installer that is typically included with Python ### Installation ```bash pip install 'arcade-ai[fastapi]' ``` Then login to your account (we're working through the waitlist as fast as we can!) ```bash arcade login ``` This will open a browser window to login. ### Verify Installation using `arcade chat` The `arcade-ai` package comes with a CLI app called `arcade chat` that is used to test tools as you develop them. By default, `arcade chat` will connect to the hosted version of Arcade AI with built-in tools (found in `toolkits`). ```bash arcade chat ``` This launches a chat with the Arcade Cloud Engine (hosted at `api.arcade-ai.com`). All pre-built Arcade tools are available to use. For example, try asking: ``` star the ArcadeAI/arcade-ai repo on Github ``` Arcade AI will ask you to authorize with GitHub, and then the AI assistant will star the [ArcadeAI/arcade-ai](https://github.com/ArcadeAI/arcade-ai) repo on your behalf. You'll see output similar to this: ``` Assistant (gpt-4o): I starred the ArcadeAI/arcade-ai repo on Github for you! ``` You can use Ctrl-C to exit the chat at any time. ### Arcade Engine APIs - **`/auth`**: Generic OAuth 2.0 flow for authorizing agents across many services - **`/tools`**: Manage, authorize, and execute tools. Tool-calling where the tools are **actually called** - **`/chat`**: An OpenAI-compatible LLM API that enables tool execution with new `tool_choice` options: 1. `tool_choice='execute'`: Return the predicted tool call's output as content in the response 2. `tool_choice='generate'`: Generate a response informed by predicted tool call(s) execution. See the full API spec [here](https://reference.arcade-ai.com). ### Arcade Cloud Engine

Arcade AI offers a number of prebuilt toolkits that can be used to interact with a variety of services. #### Calling tools directly ```python from arcadepy import Arcade client = Arcade() USER_ID = "you@example.com" TOOL_NAME = "Github.SetStarred" # Perform User Authorization auth_response = client.tools.authorize( tool_name=TOOL_NAME, user_id=USER_ID, ) if auth_response.status != "completed": print(f"Click this link to authorize: {auth_response.auth_url}") input("After you have authorized, press Enter to continue...") # Run the tool inputs = {"owner": "ArcadeAI", "name": "Hello-World", "starred": True} response = client.tools.run( tool_name=TOOL_NAME, inputs=inputs, user_id=USER_ID, ) print(response) ``` #### Calling tools with the LLM API ```python import os from openai import OpenAI USER_ID = "you@example.com" PROMPT = "Star the ArcadeAI/arcade-ai repository." TOOL_NAME = "Github.SetStarred" # Use "generate" to have the LLM generate a response after the tool executes. Use 'execute' to get the tool's output directly. TOOL_CHOICE = "generate" client = OpenAI( base_url="https://api.arcade-ai.com", api_key=os.environ.get("ARCADE_API_KEY")) response = client.chat.completions.create( messages=[ {"role": "user", "content": PROMPT}, ], model="gpt-4o-mini", user=USER_ID, tools=[TOOL_NAME], tool_choice=TOOL_CHOICE, ) print(response.choices[0].message.content) ``` ### Building Your Own Tools Learn how to build your own tools by following our [creating a custom toolkit guide](https://docs.arcade-ai.com/tools/overview). ### Evaluating Tools Arcade AI enables you to evaluate your custom tools to ensure they function correctly with the AI assistant, including defining evaluation cases and using different critics. Learn how to evaluate your tools by following our [evaluating tools guide](https://docs.arcade-ai.com/home/evaluate-tools/create-an-evaluation-suite). ### Auth

Learn how to use Arcade AI to obtain user authorization for accessing third-party services in our [authorizing agents with Arcade AI guide](https://docs.arcade-ai.com/home/get-a-token-for-a-user). Learn how to use Arcade AI's auth providers to enable tools and agents to call other services on behalf of users in our [tools with auth guide](https://docs.arcade-ai.com/home/build-tools/create-a-tool-with-auth). To see all available auth providers, refer to the [auth providers documentation](https://docs.arcade-ai.com/integrations). ### Models

Arcade AI supports a variety of model providers when using the Arcade AI LLM API. To see all available models, refer to the [models documentation](https://docs.arcade-ai.com/integrations/models/openai). ## Contributing We love contributions! Please read our [contributing guide](CONTRIBUTING.md) before submitting a pull request. If you'd like to self-host, refer to the [self-hosting documentation](https://docs.arcade-ai.com/home/install/overview). ## Contributors contributors

↑ Back to Top ↑