$ show Pythagora-io/gpt-pilot
Pythagora (GPT-Pilot) is an AI-powered development assistant that uses a multi-agent system to generate full-stack applications through conversational interaction. The system orchestrates specialized agents (Architect, Spec Writer, Tech Lead, Developer, Code Monkey, Troubleshooter, etc.) to collaboratively write code, run commands, test, and fix bugs based on user specifications. It features a template-driven code generator for various stacks (Vite React, Node/Express/MongoDB, etc.), a persistence layer using SQLAlchemy for project state and knowledge base, LLM provider abstraction (OpenAI, Anthropic, Groq, Azure), and a telemetry system for usage tracking. The architecture centers around a state manager that tracks project progress through epics, tasks, and iterations, with communication to a VS Code extension frontend via IPC socket. While the code demonstrates solid engineering patterns in its agent abstraction, template system, and LLM integration, the repository is no longer actively maintained, as evidenced by a historical security incident in the telemetry component that went undetected for 10 months due to lack of oversight.
The LLM identified 4 files worth highlighting for reuse:
Defines a base LLM client interface with methods for generating responses and managing conversations. Provider-specific implementations (OpenAIClient, AnthropicClient, etc.) adhere to this contract, enabling seamless switching between LLM backends. Demonstrates the Strategy pattern for encapsulating algorithms and Dependency Injection for loose coupling, making it reusable in any application requiring LLM provider abstraction.
Provides an abstract base class for project templates that defines the structure for applying templates and running post-install hooks. Specific templates (e.g., Vite React, Node/Express) inherit and implement the apply() and install_hook() methods. Combined with the render module for variable substitution, this system enables reusable project scaffolding generation and follows the Template Method pattern, allowing extraction for use in other code generation tools.
Encapsulates shell command execution with features like timeout, environment variable control, working directory management, and output streaming. Provides a safe, consistent interface for running external processes, reducing boilerplate and error-prone code in agents that need to execute commands (e.g., running tests, starting servers). This utility is self-contained and could be extracted into any Python application requiring robust subprocess handling.
Defines a base Agent class with a standardized run() method returning an AgentResponse. Combined with mixins in core/agents/mixins.py (e.g., RelevantFilesMixin, FileDiffMixin), it enables composable agent capabilities through mixin-based inheritance. This pattern promotes code reuse and separation of concerns in the multi-agent system, allowing new agents to be created by combining base functionality with specific mixins, and is reusable in any agent-based architecture.