Image Input Local File

Download a PNG locally and pass it to Claude by filepath as an image input.

Download a PNG locally and pass its filepath to Claude as an image input.

Anthropic retired the source's dated Sonnet 4 and Opus 4 models on June 15, 2026. Before running your saved copy, replace claude-sonnet-4-20250514 or claude-opus-4-20250514 with the active claude-sonnet-4-6 model. See model lifecycle status.

image_input_local_file.py
"""
In this example, we upload a PDF file to Anthropic directly and then use it as an input to an agent.
"""

from pathlib import Path

from agno.agent import Agent
from agno.media import Image
from agno.models.anthropic import Claude
from agno.utils.media import download_file
from anthropic import Anthropic

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------

img_path = Path(__file__).parent.joinpath("agno-intro.png")

# Download the file using the download_file function
download_file(
    "https://agno-public.s3.us-east-1.amazonaws.com/images/agno-intro.png",
    str(img_path),
)

# Initialize Anthropic client
client = Anthropic()

agent = Agent(
    model=Claude(id="claude-sonnet-4-20250514"),
    markdown=True,
)

agent.print_response(
    "What does the attached image say.",
    images=[Image(filepath=img_path)],
)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------

if __name__ == "__main__":
    pass

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno anthropic

Export your Anthropic API key

export ANTHROPIC_API_KEY="your_anthropic_api_key_here"

Update the source model

In your saved copy, replace claude-sonnet-4-20250514 or claude-opus-4-20250514 with claude-sonnet-4-6. Keep the other model settings.

Run the example

Save the code above as image_input_local_file.py, then run:

python image_input_local_file.py

Full source: cookbook/90_models/anthropic/image_input_local_file.py