An open API service indexing awesome lists of open source software.

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

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.*