# Claude API Desktop
A modern, feature-rich desktop client for the Anthropic Claude API with streaming support, extended context capabilities, and an intuitive graphical interface.



## Features
### Core Capabilities
- **Real-time Streaming**: Stream responses as they're generated for a responsive chat experience
- **Extended Context Support**: Automatically uses beta headers for:
- 1M context window with Claude Sonnet 4
- 128k output tokens with Claude Sonnet 3.7
- **Multi-Model Support**: Access all Claude models including:
- Claude Opus 4.1 & 4.0
- Claude Sonnet 4 & 3.7
- Claude Haiku 3.5
### User Experience
- **File Attachments**: Attach images (PNG, JPG, JPEG, GIF, WebP) and text files directly in conversations
- **System Prompts**: Configure persistent system prompts for specialized assistants
- **Export Conversations**: Save chats as Markdown or JSON for documentation and sharing
- **Token & Cost Tracking**: Real-time display of token usage and estimated API costs
- **Keyboard Shortcuts**: Detailed below.
### Technical Features
- **Configuration Persistence**: Saves API key, model preference, and system prompt in platform-appropriate directories
- **Clean GUI**: Built with tkinter for cross-platform compatibility
- **Threaded API Calls**: Non-blocking UI during API requests
- **Comprehensive Error Handling**: Graceful handling of connection and API errors
- **Conversation Branching**: Create alternate conversation paths and switch between them
- **SQLite Database**: Reliable local storage for conversation history in user data directories
## Installation
### Prerequisites
- Python 3.8 or higher
- pip package manager
### Install from PyPI
```bash
pip install claude-api-desktop
```
### Install from Source
1. Clone the repository:
```bash
git clone https://github.com/anthony-maio/claude-api-desktop.git
cd claude-api-desktop
```
2. Install using pip:
```bash
pip install .
```
3. Run the application:
```bash
claude-api-desktop
```
## Data Storage
The application stores all user data in platform-appropriate directories:
### Windows
- **Configuration**: `%LOCALAPPDATA%\claude-api-desktop\claude_client_config`
- **Database**: `%LOCALAPPDATA%\claude-api-desktop\conversations.db`
- **Full path**: `C:\Users\{username}\AppData\Local\claude-api-desktop\`
### macOS
- **Configuration**: `~/Library/Application Support/claude-api-desktop/claude_client_config`
- **Database**: `~/Library/Application Support/claude-api-desktop/conversations.db`
### Linux
- **Configuration**: `~/.local/share/claude-api-desktop/claude_client_config`
- **Database**: `~/.local/share/claude-api-desktop/conversations.db`
## Configuration
### API Key
1. Get your API key from `Anthropic Console <https://console.anthropic.com/>`_
2. Open Settings (⚙️ button or `Ctrl+,`)
3. Enter your API key in the API tab
4. The key is saved locally in platform-appropriate directories:
- **Windows**: `%LOCALAPPDATA%\claude-api-desktop\claude_client_config`
- **macOS**: `~/Library/Application Support/claude-api-desktop/claude_client_config`
- **Linux**: `~/.local/share/claude-api-desktop/claude_client_config`
### Model Selection
Choose from the dropdown menu:
- **Claude Opus 4.1**: Most capable model for complex tasks
- **Claude Opus 4**: Previous generation Opus
- **Claude Sonnet 4**: Balanced performance with 1M context window
- **Claude Sonnet 3.7**: Fast with 128k output capability
- **Claude Haiku 3.5**: Fastest and cheapest
## Usage Examples
### Basic Chat
1. Enter your API key in Settings
2. Type your message
3. Press Send or `Ctrl+Enter`
### Using System Prompts *Optional*
1. Open Settings (⚙️ button)
2. Go to General tab
3. Enter instructions.
### Attaching Files *[Beta]*
1. Click the 📎 Attach button
2. Select image or text file
3. Multiple files are supported
### Conversation Branching *[Alpha]*
1. Start a conversation with Claude
2. Click 🌿 Branch button
3. Create "Alternative approach" branch
4. Continue conversation in new direction
5. Switch between branches anytime
## API Costs
**⚠️ IMPORTANT COST DISCLAIMER ⚠️**
The client displays estimated costs based on September 2025 Anthropic pricing **for reference only**. These values are:
- **NOT AUTHORITATIVE** - Always refer to your Anthropic Console for actual billing
- **ESTIMATES ONLY** - Actual costs may vary significantly
- **SUBJECT TO CHANGE** - Anthropic may update pricing at any time
- **NOT GUARANTEED ACCURATE** - Token counting is approximate
**YOU ARE SOLELY RESPONSIBLE FOR MONITORING YOUR ACTUAL API USAGE AND COSTS.** Always set spending limits in your Anthropic Console.
================= ==================== ======================
Model Input (per 1M tokens) Output (per 1M tokens)
================= ==================== ======================
Claude Opus 4.1/4.0 $15.00 $75.00
Claude Sonnet 4/3.7 $3.00 $15.00
Claude Haiku 3.5 $0.80 $4.00
================= ==================== ======================
## Keyboard Shortcuts
**Messaging:**
* `Ctrl+Enter`: Send message
* `Escape`: Abort current request
**Conversation Management:**
* `Ctrl+N`: Start new conversation
* `Ctrl+S`: Save current conversation
* `Ctrl+H`: Open conversation history
* `Ctrl+L`: Clear current chat
**Interface:**
* `Ctrl+,`: Open Settings dialog
* `Ctrl+D`: Toggle dark/light theme
* `F1`: Show help dialog
**File Operations:**
* `Ctrl+E`: Export conversation
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
* Built with [Anthropic's Claude API](https://docs.anthropic.com/)
* GUI framework: [tkinter](https://docs.python.org/3/library/tkinter.html)
* HTTP client: [requests](https://requests.readthedocs.io/)
## Author
**Anthony Maio** (anthony.maio@gmail.com)
Passionate about AI/ML, software engineering, culture and leadership.
Follow or find me on [LinkedIn](https://www.linkedin.com/in/anthony-maio) - Open to work!
*Currently seeking opportunities in AI/ML engineering full-time US Remote*
## Privacy & Data Handling
**🔒 YOUR DATA STAYS ON YOUR DEVICE 🔒**
- **No Data Collection**: This application does NOT collect, transmit, or store any of your conversations, API keys, or personal data on external servers
- **Local Storage Only**: All data (conversations, settings, API keys) is stored locally on your device in platform-appropriate directories
- **Direct API Communication**: The app communicates directly with Anthropic's API - no intermediary servers
- **Open Source**: Full source code is available for inspection - verify our privacy claims yourself
- **No Analytics**: No usage tracking, telemetry, or analytics are collected
- **No Network Requests**: Except to Anthropic's official API endpoints for chat functionality
**Your privacy is paramount. This tool is designed to be a secure, private interface to Claude API.**
## Important Disclaimers
**⚠️ LEGAL DISCLAIMERS ⚠️**
- **Independent Project**: This software is NOT affiliated with, endorsed by, or officially connected to Anthropic in any way
- **No Warranty**: This software is provided "AS IS" without warranty of any kind, express or implied
- **User Responsibility**: You are solely responsible for your API usage, costs, and compliance with Anthropic's terms of service
- **Cost Estimates**: All cost calculations are estimates only and may be inaccurate - always monitor actual usage in your Anthropic Console
- **API Compliance**: Users must comply with all Anthropic usage policies and terms of service
- **Use at Your Own Risk**: The developers are not liable for any damages, costs, or issues arising from use of this software
## Support
Support is limited and generally submitted through Github in the issues section.
If you find this tool useful, please consider:
* Starring the repository
* Contributing improvements
---
**Note**: This is an independent project and is not affiliated with Anthropic. Always ensure you comply with Anthropic's [usage policies](https://www.anthropic.com/legal/aup) when using the API.
Raw data
{
"_id": null,
"home_page": null,
"name": "claude-api-desktop",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "Anthony Maio <anthony.maio@gmail.com>",
"keywords": "claude, anthropic, ai, chatbot, api-client, desktop-application, streaming, gui, artificial-intelligence, machine-learning, natural-language-processing, llm, conversation-branching",
"author": null,
"author_email": "Anthony Maio <anthony.maio@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/e2/fe/a46af265936e7e6b451a80805abb19b9ac7da65179e8a5d88bd63b42dfc0/claude_api_desktop-1.0.0.tar.gz",
"platform": null,
"description": "# Claude API Desktop\r\n\r\nA modern, feature-rich desktop client for the Anthropic Claude API with streaming support, extended context capabilities, and an intuitive graphical interface.\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n## Features\r\n\r\n### Core Capabilities\r\n\r\n- **Real-time Streaming**: Stream responses as they're generated for a responsive chat experience\r\n- **Extended Context Support**: Automatically uses beta headers for:\r\n\r\n - 1M context window with Claude Sonnet 4\r\n - 128k output tokens with Claude Sonnet 3.7\r\n\r\n- **Multi-Model Support**: Access all Claude models including:\r\n\r\n - Claude Opus 4.1 & 4.0\r\n - Claude Sonnet 4 & 3.7\r\n - Claude Haiku 3.5\r\n\r\n### User Experience\r\n\r\n- **File Attachments**: Attach images (PNG, JPG, JPEG, GIF, WebP) and text files directly in conversations\r\n- **System Prompts**: Configure persistent system prompts for specialized assistants\r\n- **Export Conversations**: Save chats as Markdown or JSON for documentation and sharing\r\n- **Token & Cost Tracking**: Real-time display of token usage and estimated API costs\r\n- **Keyboard Shortcuts**: Detailed below.\r\n\r\n### Technical Features\r\n\r\n- **Configuration Persistence**: Saves API key, model preference, and system prompt in platform-appropriate directories\r\n- **Clean GUI**: Built with tkinter for cross-platform compatibility \r\n- **Threaded API Calls**: Non-blocking UI during API requests\r\n- **Comprehensive Error Handling**: Graceful handling of connection and API errors\r\n- **Conversation Branching**: Create alternate conversation paths and switch between them\r\n- **SQLite Database**: Reliable local storage for conversation history in user data directories\r\n\r\n## Installation\r\n\r\n### Prerequisites\r\n\r\n- Python 3.8 or higher\r\n- pip package manager\r\n\r\n### Install from PyPI\r\n\r\n```bash\r\n pip install claude-api-desktop\r\n```\r\n### Install from Source\r\n\r\n1. Clone the repository:\r\n\r\n```bash\r\n git clone https://github.com/anthony-maio/claude-api-desktop.git\r\n cd claude-api-desktop\r\n```\r\n2. Install using pip:\r\n\r\n```bash\r\n pip install .\r\n```\r\n3. Run the application:\r\n\r\n```bash\r\n claude-api-desktop\r\n```\r\n## Data Storage\r\n\r\nThe application stores all user data in platform-appropriate directories:\r\n\r\n### Windows\r\n- **Configuration**: `%LOCALAPPDATA%\\claude-api-desktop\\claude_client_config`\r\n- **Database**: `%LOCALAPPDATA%\\claude-api-desktop\\conversations.db`\r\n- **Full path**: `C:\\Users\\{username}\\AppData\\Local\\claude-api-desktop\\`\r\n\r\n### macOS\r\n- **Configuration**: `~/Library/Application Support/claude-api-desktop/claude_client_config`\r\n- **Database**: `~/Library/Application Support/claude-api-desktop/conversations.db`\r\n\r\n### Linux\r\n- **Configuration**: `~/.local/share/claude-api-desktop/claude_client_config`\r\n- **Database**: `~/.local/share/claude-api-desktop/conversations.db`\r\n\r\n## Configuration\r\n\r\n### API Key\r\n\r\n1. Get your API key from `Anthropic Console <https://console.anthropic.com/>`_\r\n2. Open Settings (\u2699\ufe0f button or `Ctrl+,`)\r\n3. Enter your API key in the API tab\r\n4. The key is saved locally in platform-appropriate directories:\r\n - **Windows**: `%LOCALAPPDATA%\\claude-api-desktop\\claude_client_config`\r\n - **macOS**: `~/Library/Application Support/claude-api-desktop/claude_client_config`\r\n - **Linux**: `~/.local/share/claude-api-desktop/claude_client_config`\r\n\r\n### Model Selection\r\n\r\nChoose from the dropdown menu:\r\n\r\n- **Claude Opus 4.1**: Most capable model for complex tasks\r\n- **Claude Opus 4**: Previous generation Opus \r\n- **Claude Sonnet 4**: Balanced performance with 1M context window \r\n- **Claude Sonnet 3.7**: Fast with 128k output capability\r\n- **Claude Haiku 3.5**: Fastest and cheapest\r\n\r\n## Usage Examples\r\n\r\n### Basic Chat\r\n\r\n1. Enter your API key in Settings\r\n2. Type your message\r\n3. Press Send or `Ctrl+Enter`\r\n\r\n### Using System Prompts *Optional*\r\n\r\n1. Open Settings (\u2699\ufe0f button)\r\n2. Go to General tab\r\n3. Enter instructions.\r\n\r\n### Attaching Files *[Beta]*\r\n\r\n1. Click the \ud83d\udcce Attach button\r\n2. Select image or text file\r\n3. Multiple files are supported\r\n\r\n### Conversation Branching *[Alpha]*\r\n\r\n1. Start a conversation with Claude\r\n2. Click \ud83c\udf3f Branch button\r\n3. Create \"Alternative approach\" branch\r\n4. Continue conversation in new direction\r\n5. Switch between branches anytime\r\n\r\n\r\n## API Costs\r\n\r\n**\u26a0\ufe0f IMPORTANT COST DISCLAIMER \u26a0\ufe0f**\r\n\r\nThe client displays estimated costs based on September 2025 Anthropic pricing **for reference only**. These values are:\r\n- **NOT AUTHORITATIVE** - Always refer to your Anthropic Console for actual billing\r\n- **ESTIMATES ONLY** - Actual costs may vary significantly\r\n- **SUBJECT TO CHANGE** - Anthropic may update pricing at any time\r\n- **NOT GUARANTEED ACCURATE** - Token counting is approximate\r\n\r\n**YOU ARE SOLELY RESPONSIBLE FOR MONITORING YOUR ACTUAL API USAGE AND COSTS.** Always set spending limits in your Anthropic Console.\r\n\r\n================= ==================== ======================\r\nModel Input (per 1M tokens) Output (per 1M tokens)\r\n================= ==================== ======================\r\nClaude Opus 4.1/4.0 $15.00 $75.00\r\nClaude Sonnet 4/3.7 $3.00 $15.00\r\nClaude Haiku 3.5 $0.80 $4.00\r\n================= ==================== ======================\r\n\r\n## Keyboard Shortcuts\r\n\r\n**Messaging:**\r\n\r\n* `Ctrl+Enter`: Send message\r\n* `Escape`: Abort current request\r\n\r\n**Conversation Management:**\r\n\r\n* `Ctrl+N`: Start new conversation\r\n* `Ctrl+S`: Save current conversation\r\n* `Ctrl+H`: Open conversation history\r\n* `Ctrl+L`: Clear current chat\r\n\r\n**Interface:**\r\n\r\n* `Ctrl+,`: Open Settings dialog\r\n* `Ctrl+D`: Toggle dark/light theme\r\n* `F1`: Show help dialog\r\n\r\n**File Operations:**\r\n\r\n* `Ctrl+E`: Export conversation\r\n\r\n## License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## Acknowledgments\r\n\r\n* Built with [Anthropic's Claude API](https://docs.anthropic.com/)\r\n* GUI framework: [tkinter](https://docs.python.org/3/library/tkinter.html)\r\n* HTTP client: [requests](https://requests.readthedocs.io/)\r\n\r\n## Author\r\n\r\n**Anthony Maio** (anthony.maio@gmail.com)\r\n\r\nPassionate about AI/ML, software engineering, culture and leadership.\r\n\r\nFollow or find me on [LinkedIn](https://www.linkedin.com/in/anthony-maio) - Open to work!\r\n*Currently seeking opportunities in AI/ML engineering full-time US Remote*\r\n\r\n## Privacy & Data Handling\r\n\r\n**\ud83d\udd12 YOUR DATA STAYS ON YOUR DEVICE \ud83d\udd12**\r\n\r\n- **No Data Collection**: This application does NOT collect, transmit, or store any of your conversations, API keys, or personal data on external servers\r\n- **Local Storage Only**: All data (conversations, settings, API keys) is stored locally on your device in platform-appropriate directories\r\n- **Direct API Communication**: The app communicates directly with Anthropic's API - no intermediary servers\r\n- **Open Source**: Full source code is available for inspection - verify our privacy claims yourself\r\n- **No Analytics**: No usage tracking, telemetry, or analytics are collected\r\n- **No Network Requests**: Except to Anthropic's official API endpoints for chat functionality\r\n\r\n**Your privacy is paramount. This tool is designed to be a secure, private interface to Claude API.**\r\n\r\n## Important Disclaimers\r\n\r\n**\u26a0\ufe0f LEGAL DISCLAIMERS \u26a0\ufe0f**\r\n\r\n- **Independent Project**: This software is NOT affiliated with, endorsed by, or officially connected to Anthropic in any way\r\n- **No Warranty**: This software is provided \"AS IS\" without warranty of any kind, express or implied\r\n- **User Responsibility**: You are solely responsible for your API usage, costs, and compliance with Anthropic's terms of service\r\n- **Cost Estimates**: All cost calculations are estimates only and may be inaccurate - always monitor actual usage in your Anthropic Console\r\n- **API Compliance**: Users must comply with all Anthropic usage policies and terms of service\r\n- **Use at Your Own Risk**: The developers are not liable for any damages, costs, or issues arising from use of this software\r\n\r\n## Support\r\n\r\nSupport is limited and generally submitted through Github in the issues section.\r\nIf you find this tool useful, please consider:\r\n\r\n* Starring the repository\r\n* Contributing improvements\r\n\r\n---\r\n\r\n**Note**: This is an independent project and is not affiliated with Anthropic. Always ensure you comply with Anthropic's [usage policies](https://www.anthropic.com/legal/aup) when using the API.\r\n",
"bugtrack_url": null,
"license": null,
"summary": "A modern desktop client for the Anthropic Claude API with streaming support and extended context capabilities",
"version": "1.0.0",
"project_urls": {
"Bug Tracker": "https://github.com/anthony-maio/claude-api-desktop/issues",
"Changelog": "https://github.com/anthony-maio/claude-api-desktop/releases",
"Documentation": "https://github.com/anthony-maio/claude-api-desktop#readme",
"Feature Requests": "https://github.com/anthony-maio/claude-api-desktop/discussions",
"Homepage": "https://github.com/anthony-maio/claude-api-desktop",
"Repository": "https://github.com/anthony-maio/claude-api-desktop"
},
"split_keywords": [
"claude",
" anthropic",
" ai",
" chatbot",
" api-client",
" desktop-application",
" streaming",
" gui",
" artificial-intelligence",
" machine-learning",
" natural-language-processing",
" llm",
" conversation-branching"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "c6afd76488cd82135991e087b578ed784583800b155601b71e75772da6f01804",
"md5": "e3fcbcb17ac2a26008042c1518cdaefc",
"sha256": "89578783c78232c978eb7f8607885c0974b9f10d338aa8ba3dec471a3e2f3609"
},
"downloads": -1,
"filename": "claude_api_desktop-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "e3fcbcb17ac2a26008042c1518cdaefc",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 29626,
"upload_time": "2025-09-05T19:25:24",
"upload_time_iso_8601": "2025-09-05T19:25:24.651135Z",
"url": "https://files.pythonhosted.org/packages/c6/af/d76488cd82135991e087b578ed784583800b155601b71e75772da6f01804/claude_api_desktop-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e2fea46af265936e7e6b451a80805abb19b9ac7da65179e8a5d88bd63b42dfc0",
"md5": "dc9f25a0e3d29c0d802526f3df08d4e2",
"sha256": "62799849ef9c9b4a63ea36af9ef99bdf77f3f8c9cd0d8530bded0cc320b9bfc7"
},
"downloads": -1,
"filename": "claude_api_desktop-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "dc9f25a0e3d29c0d802526f3df08d4e2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 32879,
"upload_time": "2025-09-05T19:25:25",
"upload_time_iso_8601": "2025-09-05T19:25:25.987917Z",
"url": "https://files.pythonhosted.org/packages/e2/fe/a46af265936e7e6b451a80805abb19b9ac7da65179e8a5d88bd63b42dfc0/claude_api_desktop-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-05 19:25:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "anthony-maio",
"github_project": "claude-api-desktop",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "requests",
"specs": [
[
">=",
"2.31.0"
]
]
},
{
"name": "Pillow",
"specs": [
[
">=",
"10.0.0"
]
]
}
],
"lcname": "claude-api-desktop"
}