Skip to content

A lightweight Python IDE built with Tauri (Rust) and React, featuring real-time script execution, Monaco Editor, and uv-based environment management

License

Notifications You must be signed in to change notification settings

sheacoding/Pyra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Pyra IDE

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 | 简体中文

Features

  • 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 uv installation 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

Quick Start

Prerequisites

  • Node.js (16+)
  • Rust and Cargo
  • uv (Python package manager) - Automatically installed on first run if not present

Installation

  1. Clone the repository:
git clone https://github.com/sheacoding/Pyra.git
cd pyra
  1. Install dependencies:
npm install
  1. Start development server:
npm run tauri dev

Note: Pyra will automatically detect and install required Python tools (uv) on first launch if they're not already available on your system.

Building for Production

npm run tauri build

Development Commands

Frontend Development

npm run dev          # Start Vite dev server (frontend only)
npm run build        # Build frontend for production
npm run preview      # Preview production build

Full Application Development

npm run tauri dev    # Run full Tauri app in development mode
npm run tauri build  # Build production app bundle

TypeScript and Linting

npx tsc --noEmit     # Type check without emitting files

Architecture

Frontend (React + TypeScript)

  • Main App: src/App.tsx - Central application with unified header/toolbar and multi-tab support
  • Core Components:
    • FileTree.tsx - File system browser
    • Editor.tsx - Monaco Editor integration with multi-file support
    • TabsBar.tsx - Multi-file tab management
    • Console.tsx - Real-time script output
    • ProjectPanel.tsx - Python environment management with smart uv integration
    • SettingsPanel.tsx - IDE configuration and theming
    • DebugPanel.tsx - Debug control panel (breakpoints, call stack, variable inspection)
    • StatusBar.tsx - Environment status and system information

Backend (Rust + Tauri)

  • Entry Point: src-tauri/src/main.rs
  • Command Modules:
    • file.rs - File system operations
    • python.rs - Python/uv integration
    • project.rs - Project management
    • ruff.rs - Code formatting and linting
    • debug.rs - Python debugger integration (DAP protocol)

Python Integration

  • Smart Environment Setup: Automatic uv installation via official scripts on first run
  • Environment Management: uv for Python versions and virtual environments with status tracking
  • Package Management: uv pip for 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

Theming

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

Project Structure

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

Documentation

User Documentation

Developer Documentation

Contributing

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.

Commercial Use

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

License

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.

Third-Party Licenses

This project includes various third-party open-source components. See NOTICE for detailed attribution and license information.

Acknowledgments

  • 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

About

A lightweight Python IDE built with Tauri (Rust) and React, featuring real-time script execution, Monaco Editor, and uv-based environment management

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •