Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

Orbit Client

A Python client for interacting with Orbit chat servers. This client provides a command-line interface for chatting with Orbit servers, supporting MCP protocol.

GitHub Project

https://github.com/schmitech/orbit/tree/main/clients/python

Build and Test Before Publishing

Before publishing to PyPI, you should test your package locally. Here's how:

  1. Build the package locally:
# Install build tools if not already installed
pip install build

# Build the package
python -m build
  1. Install the package in development mode:
# Install in editable mode
pip install -e .

# Or install the built wheel directly
pip install dist/schmitech_orbit_client-*.whl
  1. Test the CLI:
# Test basic functionality
orbit-chat --url http://localhost:3000

# Test with debug mode
orbit-chat --url http://localhost:3000 --debug

# Test with API key
orbit-chat --url http://localhost:3000 --api-key your-test-key

# Test with custom session ID
orbit-chat --url http://localhost:3000 --session-id my_custom_session_123
  1. Uninstall test version:
pip uninstall schmitech-orbit-client

Publishing Package:

To build the package from source:

# Install build tools
pip install build twine

# Build the package
python -m build

# Upload to PyPI (requires PyPI account)
python -m twine upload dist/*

Removing the Package

To remove the package from PyPI:

# Install twine if not already installed
pip install twine

# Delete specific version
twine delete schmitech-orbit-client==0.1.0

# Or delete all versions
twine delete schmitech-orbit-client

Note: Once a package version is deleted, it cannot be restored. The package name becomes available again after 30 days.

Usage

After installation, you can use the client in two ways:

1. Command-line Interface

The simplest way to use the client is through the command-line interface:

# Basic usage with default settings
orbit-chat --url http://your-server:3000

# Advanced usage with all options
orbit-chat --url http://your-server:3000 \
           --api-key your-api-key \
           --session-id your-session-id \
           --debug \
           --show-timing

Command-line Options

  • --url: Chat server URL (default: http://localhost:3000)
  • --api-key: API key for authentication
  • --session-id: Session ID for tracking the conversation (default: auto-generated UUID)
  • --debug: Enable debug mode to see request/response details
  • --show-timing: Show latency timing information

Session ID Examples

# Using auto-generated UUID (default)
orbit-chat --url http://localhost:3000

# Using a custom session ID
orbit-chat --url http://localhost:3000 --session-id user_123_session_456

# Using a UUID format session ID
orbit-chat --url http://localhost:3000 --session-id 123e4567-e89b-12d3-a456-426614174000

Interactive Features

  • Use up/down arrow keys to navigate through chat history
  • Type exit or quit to end the conversation
  • Press Ctrl+C to interrupt the current response
  • Chat history is saved in ~/.orbit_client_history/chat_history

2. Python Module

You can also use the client in your Python code:

from schmitech_orbit_client import stream_chat

# Basic usage
response, timing_info = stream_chat(
    url="http://your-server:3000",
    message="Hello, how are you?"
)

# Advanced usage with all options
response, timing_info = stream_chat(
    url="http://your-server:3000",
    message="Hello, how are you?",
    api_key="your-api-key",  # optional
    session_id="your-session-id",  # optional
    debug=True
)

# The response contains:
# - response: The full text response from the server
# - timing_info: Dictionary with timing metrics
#   - total_time: Total request time
#   - time_to_first_token: Time until first response token

Features

  • Interactive CLI: Command-line interface with history navigation
  • Protocol Support: MCP protocol format
  • Real-time Streaming: Responses appear gradually, character by character
  • Colored Output: Better readability with syntax highlighting
  • Debug Mode: Detailed request/response information for troubleshooting
  • Performance Metrics: Latency timing information
  • Authentication: API key support for secure communication
  • Session Tracking: Session ID support for conversation tracking
  • Cross-platform: Works on Windows, macOS, and Linux
  • Unicode Support: Full support for non-English characters

Examples

Basic Chat Session

$ orbit-chat --url http://localhost:3000
Welcome to the Orbit Chat Client!
Server URL: http://localhost:3000
Session ID: 123e4567-e89b-12d3-a456-426614174000
Type 'exit' or 'quit' to end the conversation.
You can use arrow keys to navigate, up/down for history.

You: Hello, how are you?
Assistant: I'm doing well, thank you for asking! How can I help you today?

You: exit
Goodbye!

Debug Mode

$ orbit-chat --url http://localhost:3000 --debug
Debug - Request:
{
  "message": "Hello",
  "stream": true
}
Debug - Received:
{
  "text": "Hi there!"
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

Metadata

Release files for schmitech-orbit-client 1.1.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for schmitech-orbit-client 1.1.6
File Size Uploaded
schmitech_orbit_client-1.1.6.tar.gz 16.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for schmitech-orbit-client 1.1.6
File Interpreter ABI Platform
schmitech_orbit_client-1.1.6-py3-none-any.whl Python 3 none any Details

Total release size: 35.0 kB

Release files / schmitech_orbit_client-1.1.6.tar.gz

Download URL schmitech_orbit_client-1.1.6.tar.gz
Size 16.9 kB
Tags Source
SHA-256 checksum
How to use checksums
b2d7342db15fa6fa5f0c2b392534a3a474852b28b4d03c86c6361516329e74ca
BLAKE2b-256 checksum
How to use checksums
0e421c8d9ef9aa6b6c7e164fa3b065a07828070529bd5a1335e34e0bd66c2d09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11

Release files / schmitech_orbit_client-1.1.6-py3-none-any.whl

Download URL schmitech_orbit_client-1.1.6-py3-none-any.whl
Size 18.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4adb175efb9c90a4adae2d62d81f60700f6783e6834a18726939d9b75440bd10
BLAKE2b-256 checksum
How to use checksums
0bb963fead2adbadc3fa41fa9e69d7170b855af273202e212e49f2bb45f7058d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.11
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page