Skip to main content

Claudine AI agent

Project description

🤖 Claudine

A Python wrapper for the Anthropic Claude API that simplifies tool use, token tracking, and agent functionality.

📦 Installation

# Using uv
uv pip install -e .

# With development dependencies
uv pip install -e ".[dev]"

✨ Features

  • 🔌 Easy integration with Claude 3 models
  • 🛠️ Tool registration and management
  • 🔢 Token usage tracking and reporting
  • 💰 Cost information tracking
  • 📞 Support for tool callbacks
  • 💬 Simplified message handling

🚀 Quick Start

from claudine import Agent

# Initialize the agent
agent = Agent()

# Process a prompt
response = agent.process_prompt("Write a short poem about programming.")
print(response)

# Get token usage information
token_info = agent.get_token_usage()
print(f"Total tokens used: {token_info.total_usage.total_tokens}")

# Get cost information
cost_info = agent.get_cost()
print(f"Total cost: ${cost_info['total_cost'].total_cost:.6f} {cost_info['total_cost'].unit}")

🔧 Tool Usage

from claudine import Agent

def search_web(query: str) -> str:
    """Search the web for information."""
    # Implementation here
    return f"Results for: {query}"

# Initialize agent with tools
agent = Agent(
    tools=[search_web]
)

# Process a prompt that might use tools
response = agent.process_prompt("What's the weather in London?")
print(response)

📝 Text Editor Tool

Claudine supports the text editor tool for Claude, allowing it to view and edit text files:

def handle_editor_tool(command, **kwargs):
    # Implement the text editor tool
    # ...

# Initialize the agent with the text editor tool
agent = Agent(text_editor_tool=handle_editor_tool)

The text editor tool supports the following commands:

  • 👁️ view: View the contents of a file
  • 🔄 str_replace: Replace text in a file
  • create: Create a new file
  • insert: Insert text at a specific position
  • ↩️ undo_edit: Undo the last edit

For more information, see the Anthropic documentation.

🔢 Token Tracking

Claudine provides detailed token usage information:

token_info = agent.get_token_usage()

# Text usage
print(f"Text input tokens: {token_info.text_usage.input_tokens}")
print(f"Text output tokens: {token_info.text_usage.output_tokens}")

# Tool usage
print(f"Tool input tokens: {token_info.tools_usage.input_tokens}")
print(f"Tool output tokens: {token_info.tools_usage.output_tokens}")

# Total usage
print(f"Total tokens: {token_info.total_usage.total_tokens}")

🐛 Debugging

Claudine provides a debug mode to help you understand what's happening behind the scenes:

# Initialize agent with debug mode
agent = Agent(debug_mode=True)

# Process a prompt
response = agent.process_prompt("Hello, Claude!")

When debug mode is enabled, Claudine will print detailed information about the API requests being sent to Claude, including:

  • 💬 Message content
  • 🛠️ Tool definitions
  • ⚙️ Model parameters

This is particularly useful when debugging tool use and text editor interactions.

💰 Cost Tracking

Claudine also provides detailed cost information:

cost_info = agent.get_cost()

# Text costs
print(f"Text input cost: ${cost_info['text_cost'].input_cost:.6f} {cost_info['text_cost'].unit}")
print(f"Text output cost: ${cost_info['text_cost'].output_cost:.6f} {cost_info['text_cost'].unit}")
print(f"Text total cost: ${cost_info['text_cost'].total_cost:.6f} {cost_info['text_cost'].unit}")

# Tool costs
print(f"Tool input cost: ${cost_info['tools_cost'].input_cost:.6f} {cost_info['tools_cost'].unit}")
print(f"Tool output cost: ${cost_info['tools_cost'].output_cost:.6f} {cost_info['tools_cost'].unit}")
print(f"Tool total cost: ${cost_info['tools_cost'].total_cost:.6f} {cost_info['tools_cost'].unit}")

# Total cost
print(f"Total cost: ${cost_info['total_cost'].total_cost:.6f} {cost_info['total_cost'].unit}")

# Cost by tool
for tool_name, cost in cost_info['by_tool'].items():
    print(f"Tool: {tool_name}")
    print(f"  Input cost: ${cost.input_cost:.6f} {cost.unit}")
    print(f"  Output cost: ${cost.output_cost:.6f} {cost.unit}")
    print(f"  Total cost: ${cost.total_cost:.6f} {cost.unit}")

📄 License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

claudine-0.1.0.tar.gz (56.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

claudine-0.1.0-py3-none-any.whl (39.0 kB view details)

Uploaded Python 3

File details

Details for the file claudine-0.1.0.tar.gz.

File metadata

  • Download URL: claudine-0.1.0.tar.gz
  • Upload date:
  • Size: 56.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.0

File hashes

Hashes for claudine-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b37604e357918786cb493c9ec83cb77878e4c517de47352cd491d14d49e3f570
MD5 f03fb7627174154a51dbfbd738a8e50a
BLAKE2b-256 3757b35151f81af978767b200184d20519ca1579d3b85e0d4eba735f476090f5

See more details on using hashes here.

File details

Details for the file claudine-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: claudine-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 39.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.0

File hashes

Hashes for claudine-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c340f6b85765d97e00baba56ad90c28c6c78ce4894cd43ab44cd3e6fc71bfa48
MD5 d10e27cc129047c74fa760a9066ac13b
BLAKE2b-256 30e4427d6d031eaf2630065196784f246c34f681bfcb2d91423ec66798a7da40

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page