A lightweight, modern Python IDE built with Tauri (Rust backend) + React (TypeScript frontend). Pyra emphasizes modern tooling, cross-platform compatibility, and seamless integration with uv for Python environment management.
English | 简体中文
- Lightweight & Fast: Built with Rust backend for optimal performance
- Monaco Editor: Professional code editing with Python syntax highlighting
- Multi-file Editing: Tab-based interface for editing multiple files simultaneously
- Smart Environment Management: Automatic
uvinstallation and intelligent environment status tracking - Package Management: Visual package installation and dependency management
- Code Quality Tools: Built-in Ruff integration for linting and formatting
- Python Debugging: Full debugging support with DAP protocol (breakpoints, stepping, variable inspection)
- Modern UI: Catppuccin theme with light/dark mode support and unified design consistency
- Real-time Console: Live script output and error reporting
- Project Templates: Quick project setup with predefined templates
- Cross-platform Installer: Automated environment setup scripts for all platforms
- Cross-platform: Windows, macOS, and Linux support
- Node.js (16+)
- Rust and Cargo
uv(Python package manager) - Automatically installed on first run if not present
- Clone the repository:
git clone https://github.com/sheacoding/Pyra.git
cd pyra- Install dependencies:
npm install- Start development server:
npm run tauri devNote: Pyra will automatically detect and install required Python tools (
uv) on first launch if they're not already available on your system.
npm run tauri buildnpm run dev # Start Vite dev server (frontend only)
npm run build # Build frontend for production
npm run preview # Preview production buildnpm run tauri dev # Run full Tauri app in development mode
npm run tauri build # Build production app bundlenpx tsc --noEmit # Type check without emitting files- Main App:
src/App.tsx- Central application with unified header/toolbar and multi-tab support - Core Components:
FileTree.tsx- File system browserEditor.tsx- Monaco Editor integration with multi-file supportTabsBar.tsx- Multi-file tab managementConsole.tsx- Real-time script outputProjectPanel.tsx- Python environment management with smart uv integrationSettingsPanel.tsx- IDE configuration and themingDebugPanel.tsx- Debug control panel (breakpoints, call stack, variable inspection)StatusBar.tsx- Environment status and system information
- Entry Point:
src-tauri/src/main.rs - Command Modules:
file.rs- File system operationspython.rs- Python/uv integrationproject.rs- Project managementruff.rs- Code formatting and lintingdebug.rs- Python debugger integration (DAP protocol)
- Smart Environment Setup: Automatic
uvinstallation via official scripts on first run - Environment Management:
uvfor Python versions and virtual environments with status tracking - Package Management:
uv pipfor dependency installation - Code Quality: Ruff for linting and formatting
- Script Execution: Virtual environment isolation
- Debugging: DAP client implementation with full debugging capabilities (breakpoints, stepping, variable inspection)
- Cross-platform Support: Environment setup scripts for Windows, macOS, and Linux
Pyra features the beautiful Catppuccin color scheme with both light (Latte) and dark (Mocha) variants. Themes are applied consistently across:
- UI components
- Monaco Editor syntax highlighting
- Terminal/console output
pyra/
├── src/ # React frontend
│ ├── components/ # React components
│ ├── lib/ # TypeScript utilities
│ ├── themes/ # Catppuccin theme configs
│ └── App.tsx # Main application
├── src-tauri/ # Rust backend
│ └── src/
│ ├── commands/ # Tauri command handlers
│ └── main.rs # Application entry point
└── docs/ # Documentation
- User Guide (English) - Complete user manual for getting started
- 用户指南(中文) - 中文版用户使用手册
- Contributing Guide - Development workflow, coding standards, and contribution guidelines
- Security Policy - Security vulnerability reporting and handling procedures
- Icon Update Guide - Instructions for updating application icons
We welcome contributions! Please read our Contributing Guide for details on:
- Code of conduct
- Development workflow
- Coding standards
- Commit guidelines
- License agreement
For security vulnerabilities, please see our Security Policy.
Pyra is licensed under Apache 2.0, which allows for both personal and commercial use:
- ✅ Free to Use: Use Pyra for any purpose, including commercial projects
- ✅ Modify and Distribute: Modify and distribute the software with proper attribution
- ✅ Patent Grant: Includes an express grant of patent rights from contributors
⚠️ Attribution Required: Include the original copyright notice and license⚠️ Trademark Restrictions: Cannot use the Pyra name/logo without permission
For commercial support, custom features, or partnership opportunities, please contact: ericoding
Copyright 2024 ericoding
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
This project is licensed under the Apache License 2.0 - see the LICENSE file for full details.
This project includes various third-party open-source components. See NOTICE for detailed attribution and license information.
- Built with Tauri for the desktop application framework
- Powered by Monaco Editor for code editing
- Uses uv for fast Python package management
- Styled with Catppuccin color schemes
- Formatted with Ruff for Python code quality