https://github.com/robertomarchioro/prompt-a-porter
Libreria locale-first per prompt AI — vault cifrato, ricerca semantica offline, MCP-ready, AGPL 3.0
https://github.com/robertomarchioro/prompt-a-porter
agplv3 ai-tools llm local-first mcp prompt-engineering prompt-library rust sqlite svelte tauri
Last synced: 11 days ago
JSON representation
Libreria locale-first per prompt AI — vault cifrato, ricerca semantica offline, MCP-ready, AGPL 3.0
- Host: GitHub
- URL: https://github.com/robertomarchioro/prompt-a-porter
- Owner: robertomarchioro
- License: agpl-3.0
- Created: 2026-05-03T05:14:59.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-06-13T16:05:28.000Z (12 days ago)
- Last Synced: 2026-06-13T16:26:23.909Z (12 days ago)
- Topics: agplv3, ai-tools, llm, local-first, mcp, prompt-engineering, prompt-library, rust, sqlite, svelte, tauri
- Language: Rust
- Homepage:
- Size: 2.2 MB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Roadmap: docs/roadmap/README.md
Awesome Lists containing this project
README
# Prompt a Porter
**Libreria locale e di team per prompt AI** — template parametrici, vault cifrato, sync opzionale.
> Il nome è un gioco su "prêt-à-porter": prompt pronti all'uso.
## Cos'è
Prompt a Porter (PaP) è un'app desktop local-first per knowledge worker che usano LLM quotidianamente. Permette di salvare prompt efficaci, renderli parametrici con segnaposti `{{nome}}`, compilarli in pochi secondi e copiarli nella chat AI di destinazione.
Non è un'app cloud. È un'app desktop invocabile via hotkey globale (tipo Raycast/Alfred), con storage primario su un **SQLite cifrato** locale. Il sync con il team è opzionale e passa attraverso un server self-hosted minimale.
## Funzionalità principali
- **Command palette globale** — `Ctrl+Shift+P` (o `⌘⇧P` su macOS) per cercare e compilare prompt in pochi secondi
- **Template parametrici** — segnaposti `{{nome}}` con tipi (testo, multilinea, enum), default e hint
- **Vault cifrato** — SQLite + SQLCipher, AES-256, password mai persistita
- **Libreria organizzata** — tag, preferiti, ricerca full-text, visibilità privata/team
- **Sync team opzionale** — server Go self-hosted, WebSocket real-time, last-write-wins
- **RBAC** — ruoli Admin / Editor / User per workspace team
- **Cross-platform** — Windows 10+, macOS 12+, Linux
## Stack tecnico
| Componente | Tecnologia |
|------------|------------|
| Client desktop | Tauri 2.x (Rust) + Svelte 5 + TypeScript |
| Editor prompt | CodeMirror 6 |
| Storage locale | SQLite + SQLCipher |
| Server sync | Go 1.22+, single binary |
| Icone | Lucide (subset tree-shakable) |
| Font | Sistema per UI, JetBrains Mono per codice |
## Struttura del repository
```
prompt-a-porter/
├── apps/
│ ├── client/ ← Tauri + Svelte (app desktop)
│ ├── server/ ← Go sync server
│ ├── cli/ ← CLI Go pap
│ └── mcp-server/ ← MCP server TypeScript
├── packages/
│ └── shared-schema/ ← Tipi TypeScript condivisi
├── docs/ ← Documentazione tecnica (vedi sotto)
├── spikes/ ← Crate/script di spike tecnici
└── .github/workflows/ ← CI/CD
```
## Documentazione
🌐 **Sito utente**: (build automatica da `main`)
🧪 **Test plan**: [`docs/test/test-cases.md`](docs/test/test-cases.md) — 146 test cases manuali citabili nelle issue (`[TC-AUTH-003] ...`)
La documentazione tecnica è organizzata in 5 cluster sotto [`docs/`](docs/):
| Cluster | Per chi |
|---|---|
| [`docs/utente/`](docs/utente/) | Chi usa PaP — CLI, MCP, formato export |
| [`docs/contribuire/`](docs/contribuire/) | Chi contribuisce codice — setup ambiente |
| [`docs/architettura/`](docs/architettura/) | Chi studia o estende il sistema — overview, schema dati, design system, ADR |
| [`docs/roadmap/`](docs/roadmap/) | Maintainer e contributor che pianificano — fasi, rinvii, quality gate |
| [`docs/operativo/`](docs/operativo/) | Chi deploya — guide di deploy |
Punto di accesso: [`docs/README.md`](docs/README.md).
## Setup sviluppo
> Documentazione dettagliata in [`docs/contribuire/setup-sviluppo.md`](docs/contribuire/setup-sviluppo.md).
### Prerequisiti
- Node.js 22.x LTS
- pnpm 9.x+
- Rust toolchain stable (per Tauri)
- Go 1.22+ (per il server sync)
### Quick start
```bash
git clone https://github.com/robertomarchioro/prompt-a-porter.git
cd prompt-a-porter
pnpm install
pnpm --filter @pap/client dev
```
## Stato del progetto
- **Fase 1 (MVP)** ✅ completata (`v0.1.0-fase1`).
- **Fase 2 (Foundations)** ✅ chiusa parziale (`v0.2.0-foundations` + patch line `v0.2.x`).
- **Fase 3 (Intelligence)** ⏳ in preparazione, con 3 spike tecnici già chiusi.
Vedi [`CHANGELOG.md`](CHANGELOG.md) per i dettagli completi e [`docs/roadmap/`](docs/roadmap/) per la pianificazione.
## Licenza
**[GNU AGPL 3.0](LICENSE)** (Affero General Public License). Chiude il loophole SaaS — chi ospita il codice come servizio ha l'obbligo di pubblicare modifiche. Tutto il codice del progetto è libero, ispezionabile e portabile.
## Autore
**Roberto Marchioro** — ICT Manager
---
*Prompt a Porter — perché i prompt migliori meritano di essere riutilizzati.*