PyTogether:面向教师/学习者的协作轻量级实时 Python IDE
PyTogether: Collaborative lightweight real-time Python IDE for teachers/learners

原始链接: https://github.com/SJRiz/pytogether

## PyTogether:面向初学者的协作Python IDE PyTogether (pytogether.org) 是一款基于浏览器的、实时协作的Python IDE,专为学习、教学和结对编程而设计。它的目标是消除传统IDE的复杂性,提供一个轻量级且无干扰的环境。 主要功能包括即时设置(无需下载)、Google Docs风格光标的实时代码编辑、集成聊天和语音通话,以及代码检查。它支持通过手动登录或Google OAuth进行安全身份验证,并允许通过群组和项目进行组织。 PyTogether使用Django、React和Y.js构建,优先考虑简单性和易用性,而非高级功能。虽然不适用于大规模生产,但它非常适合教室、编程俱乐部和初学者入门Python。使用Docker和npm可以简化本地开发。

## PyTogether:协作Python IDE PyTogether是一个新的、轻量级的、实时协作Python IDE,专为教学和学习而设计。作为Replit的替代方案,它特别避免了许多类似平台采用的“AI优先”方法,而是专注于简洁、协作的编码体验。 用户对其在课堂上的潜力感到兴奋,一位组织者计划在Python聚会上分享它。目前,PyTogether允许多个用户在基于浏览器的环境中一起编码。 开发者正在积极添加调试器和共享终端访问等功能,并承认这些功能对教育目的很重要。目前,部分Firefox用户在使用输入功能时存在问题。该项目是开源的,引发了关于可持续发展模式与依赖AI驱动的货币化的讨论。
相关文章

原文

Logo
PyTogether
Google docs for Python. A fully browser-based collaborative Python IDE with real-time editing, chat, and visualization.

pytogether.org

(https://pytogether.org/)

  • Real-time Collaboration - Edit Python code together instantly using Y.js.
  • Secure Authentication - Log in manually or with Google OAuth.
  • Groups & Projects - Organize your work into teams and projects.
  • Live Drawings - Draw directly on the IDE to assist with note-taking or teaching.
  • Live Cursors/Selections - Google docs-like live selections for smoother collaboration.
  • Live Chat and Voice Calls - Real-time messaging, and Discord-like voice chats for each project.
  • Code Linting - Integrated CodeMirror linting for cleaner, error-free code.
  • Smart Autosave - Code is automatically saved every minute and on exit.

Demo

Drawing Demo


When starting out in programming, many beginners find traditional IDEs overwhelming: full of plugins, extensions, configuration steps, paywalls, and complex UIs. PyTogether removes these barriers by offering a lightweight, distraction-free environment where you can focus on writing Python code right away.

The platform is designed for learning, teaching, and pair programming, making it ideal for classrooms, coding clubs, or quick collaborations.

Note: PyTogether is intended for educational purposes and beginner use. It is not optimized for large-scale production development.

While there are many online IDEs (Replit, Jupyter, Google Colab, etc.), PyTogether is built with a different goal: simplicity first.

  • Instant Setup⚡- No downloads, no pip installs, no hidden complexity. Just create a group, create a project, and bam!
  • Beginner Focused - No confusing menus, terminals, or configuration. Just code and run.
  • Real-Time Collaboration - Work together with classmates, friends, or mentors in the same editor.
  • Safe Learning Space - Limited features by design to reduce distractions and keep beginners focused.

Unlike production-grade IDEs, PyTogether prioritizes ease of use and collaboration for learners rather than advanced features.

  • Backend: Django, Django REST Framework (DRF)
  • Real-Time: Y.js, WebSockets (Django Channels)
  • Async Processing: Celery
  • Data Store: PostgreSQL (via Supabase)
  • Caching, Broker, & Channel layers: Redis
  • Frontend: React, Tailwind CSS, CodeMirror (code linting)
  • Python Execution: Pyodide (via Web Worker)
  • Deployment: Vercel (Frontend), Docker on VPS (Backend), Nginx (reverse proxy)
  • CI/CD: GitHub Actions (deploy backend to VPS on push to main)

Contributing & Local Setup

  • Requirements: Docker, Node

Running PyTogether locally is a simple two-step process. Run the following commands from the project root:

# 1. Install all dependencies (automatically does it for root and frontend)
npm install

# 2. Start the servers
npm run dev

This will install all required packages and run the backend container and start the frontend. It should take around 2-5 minutes on initial launch. The frontend will be live on http://localhost:5173. You can do CTRL+C to stop the program/containers.

Note Two superusers are created automatically:

Both have the password testtest. You can log in with them on the frontend.

You may also adjust the settings in backend/backend/settings/dev.py

Jawad Rizvi

Applied Mathematics & Computer Engineering student at Queen's University.

联系我们 contact @ memedata.com