TUI para capturar y gestionar ideas de proyectos
Project description
💤 LazyPlan
TUI (interfaz de terminal) para capturar y gestionar ideas de proyectos, sin salir de la consola. Anotá una idea en 5 segundos, hacé seguimiento de su estado, y creá el repo en GitHub cuando estés listo para arrancar — todo desde el teclado.
✨ Características
- Captura rápida de ideas desde la TUI o directo desde la terminal (
lazyplan new). - Estados de proyecto: 🟡 Cruda · 🟢 Activa · ⚪ Pausada · 🔴 Descartada.
- Búsqueda y filtros en tiempo real por título, descripción o stack.
- Vista de detalle con toda la info del proyecto.
- Editor integrado para crear y modificar proyectos sin salir de la app.
- Integración con GitHub CLI (
gh): creá un repositorio (público o privado) directamente desde la TUI, sin abrir el navegador. - Persistencia local en JSON, sin bases de datos ni servicios externos.
- Tema oscuro propio (
onyx-violet) 🎨
📦 Requisitos
- Python 3.11 o superior
- GitHub CLI (
gh) instalado y autenticado — solo si querés usar la creación de repos desde la app (ctrl+g). El resto de LazyPlan funciona singh.
🚀 Instalación
Con pipx (recomendado)
pipx install lazyplan
Con pip
pip install lazyplan
Desde el código fuente
git clone https://github.com/tu-usuario/lazyplan.git
cd lazyplan
pip install -e .
🕹️ Uso
Abrir la TUI
lazyplan
Crear un proyecto sin abrir la TUI
lazyplan new -t "Mi idea genial" -s "python,textual" -d "Una app de terminal" --status cruda
| Opción | Descripción |
|---|---|
-t, --title |
Título del proyecto (obligatorio) |
-s, --stack |
Tecnologías, separadas por coma |
-d, --desc |
Descripción breve |
--status |
Estado inicial: cruda, activa, pausada, descartada (default: cruda) |
Listar proyectos desde la terminal
lazyplan ls
⌨️ Atajos de teclado (dentro de la TUI)
Pantalla principal
| Tecla | Acción |
|---|---|
n |
Nuevo proyecto |
enter |
Ver detalle |
e |
Editar proyecto |
d |
Eliminar proyecto |
j / k |
Mover cursor abajo / arriba |
ctrl+f |
Buscar |
esc |
Limpiar búsqueda |
q |
Salir |
Detalle del proyecto
| Tecla | Acción |
|---|---|
e |
Editar |
d |
Eliminar |
ctrl+g |
Crear repositorio en GitHub |
esc |
Volver |
Editor
| Tecla | Acción |
|---|---|
ctrl+s |
Guardar |
esc |
Cancelar |
💾 Dónde se guardan los datos
LazyPlan guarda todo en un archivo JSON local, sin necesidad de conexión a internet ni servicios externos:
~/.local/share/lazyplan/projects.json
🏗️ Estructura del proyecto
lazyplan/
├── lazyplan/
│ ├── app.py # App principal de Textual
│ ├── cli.py # Entry point y comandos (typer)
│ ├── models.py # Modelo Project / Status
│ ├── storage.py # Persistencia en JSON
│ ├── github.py # Integración con GitHub CLI
│ ├── lazyplan.tcss # Estilos (Textual CSS)
│ └── screens/
│ ├── main.py # Listado principal
│ ├── detail.py # Vista de detalle
│ ├── editor.py # Crear/editar proyecto
│ ├── confirm_delete.py # Confirmación de borrado
│ └── github_screen.py # Modal de creación de repo
└── pyproject.toml
🛠️ Desarrollo
Cloná el repo e instalá las dependencias de desarrollo (incluye herramientas de build y empaquetado):
git clone https://github.com/tu-usuario/lazyplan.git
cd lazyplan
pip install -e ".[dev]"
Correr la app en modo desarrollo:
python -m lazyplan.cli
Generar el paquete
python -m build
Publicar en PyPI
twine upload dist/*
🤝 Contribuir
Las contribuciones son bienvenidas. Si encontrás un bug o tenés una idea:
- Abrí un issue describiendo el problema o la propuesta.
- Forkeá el repo y creá una rama (
git checkout -b feature/mi-mejora). - Hacé tus cambios y abrí un Pull Request.
📄 Licencia
Este proyecto no tiene licencia definida todavía. Si pensás distribuirlo o aceptar contribuciones externas, considerá agregar una (por ejemplo, MIT).
✍️ Autor
Marcelo Mastroiani — mastroianimarcelo04@gmail.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lazyplan-0.1.1.tar.gz.
File metadata
- Download URL: lazyplan-0.1.1.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc4c2ada8f962e30b759cd6789156b7c40b3c3d1b4940b4121949c038fe1eef6
|
|
| MD5 |
26226f3b07b57fc921a9450da37c0639
|
|
| BLAKE2b-256 |
00be6ab5cb65cc88cfbd6d3fef782ea23994028270b6317cb207c982181b7269
|
File details
Details for the file lazyplan-0.1.1-py3-none-any.whl.
File metadata
- Download URL: lazyplan-0.1.1-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d63041559333afb94261002e7086fd6b077f7606cc97190226167693052b2e78
|
|
| MD5 |
c9709bd74738ae2569c86adddb336001
|
|
| BLAKE2b-256 |
5c35a22cbdfec559ffa9064c2157d0d5959f171bdc26000b81042bf72da24679
|