Skip to main content

Build Your First App

In this tutorial we'll build a simple WeatherChecker app. It has one tool that fetches the current weather for any city using the wttr.in API.

1. Initialize

Open your terminal in your IDE of choice and run:

truffle init

You'll be prompted for a name and description. This creates a project structure:

  • app.py (your main Python file)
  • manifest.json (app metadata)
  • requirements.txt (dependency list)

2. Write your app

Open app.py and replace its contents with:

import truffle
import requests

class WeatherChecker:
def __init__(self):
self.client = truffle.TruffleClient()

@truffle.tool(
description="Get current weather for a specified city",
icon="cloud.sun"
)
@truffle.args(
city="Name of the city to fetch weather for"
)
def get_weather(self, city: str) -> str:
"""Fetches weather data from wttr.in and returns a simple text summary."""
try:
self.client.tool_update(f"Fetching weather for {city}...")
response = requests.get(f"http://wttr.in/{city}?format=3")
return response.text
except Exception as e:
self.client.tool_update(f"Error fetching weather: {e}")
raise ValueError(f"Failed to fetch weather for {city}: {e}")

if __name__ == "__main__":
truffle.run(WeatherChecker())

3. Install Dependencies

Make sure requests is listed in requirements.txt alongside truffle-sdk:

truffle-sdk>=0.1.0
requests>=2.28

Then install:

pip install -r requirements.txt

4. Build

Now package and upload your app:

truffle build
truffle upload
  • build bundles your code into a deployable .truffle file
  • upload deploys it to your connected Truffle hardware or to the cloud

5. Test

Open the Truffle Client, select WeatherChecker, and ask:

"What's the weather in New York?"

The Agent will invoke your get_weather("New York") tool and return something like:

New York: 🌤 +25°C

Next Steps

This simple example covers the basics. To go deeper, check out: