Naar inhoud gaan
supastack
Blader door de docs
Desktop-appTauri

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /nl/docs/desktop/first-feature.md (or send Accept: text/markdown).

Bouw je eerste feature

Een end-to-end-wandeling van één native shell-wijziging naar een geverifieerd venster.

Walkthrough voor beginners

Vereisten: lees de twee beginnersgidsen hieronder, voltooi de lokale Desktop-setup en open deze repository bij zijn root in je editor. De shell leest SUPASTACK_APP_URL als terminalinstelling bij het starten — niet uit een opgeslagen .env-bestand.

Korte termen: een werkruimte bestaat uit de afzonderlijke gebruikers, gegevens en instellingen van één team. De server is de vertrouwde backend; houd providersleutels uit de browser- en telefooncode. Een migratie is een versiebeheer van de database, waarbij tabellen worden gemaakt of bijgewerkt. Een AI-model is de motor die antwoord geeft; de modelcatalogus is de serverlijst met beschikbare model-ID's en prijzen. Een provider is een externe service, zoals een AI-, e-mail- of factureringsservice. Een recht is een subsidie ​​waarmee een werkruimte een functie kan gebruiken. Een webhook is een bericht dat de ene service naar de URL van een andere service verzendt.

1. Open .agents/skills/add-a-desktop-capability/SKILL.md — of vraag je coding-agent hem te volgen — en maak één kleine native wijziging, bijvoorbeeld een nieuw Beeld-menu-item of een andere oproep-sneltoets.

2. Voer cargo check uit, start de shell en oefen de wijziging in het geopende venster.

3. Herhaal op elk besturingssysteem dat je wilt leveren — tray-, sneltoets- en menugedrag verschilt per platform.

Noem voor eigen code het gedrag, het menu of de sneltoets die het beïnvloedt en wat er op elk OS moet gebeuren. Geef je coding-agent deze taak en vraag hem AGENTS.md, .ai/PROJECT_CONTEXT.md en de .ai/-spiegels van de bestanden te lezen die hij zal aanraken; laat hem bestanden en controles opsommen voor het bewerken; en laat hem je de diff tonen. Gebruik voorbeeldwaarden; plak nooit een echt geheim.

Beslis eerst native of product

Alles wat een gebruiker als product-UI ervaart — schermen, gegevens, instellingen — hoort bij de webapp en komt automatisch in het venster aan. Alleen OS-niveaugedrag hoort bij Rust: vensters, tray, menu's, globale sneltoetsen, starten bij aanmelden en update-controles.

apps/desktop/src-tauri/src/lib.rs
apps/desktop/src-tauri/tauri.conf.json
apps/desktop/src-tauri/capabilities/default.json

Houd de webview-sandbox strak

De webview kan alleen aanroepen wat capabilities/default.json opsomt. Een wijziging die een nieuwe plugin nodig heeft voegt de crate toe in Cargo.toml, registreert hem in lib.rs en verleent het minimale recht in capabilities — nooit een wildcard.

Persistente shell-status — vensterpositie, zoom, update-kanaal, venstervoorkeuren — leeft in de gegevensmap van de app via de meegeleverde sidecars, niet in bestanden die je met de hand beheert.

Verifieer op elk doel-OS

Voer cargo test uit, dan een echt venster op Windows, macOS en Linux: vensterstatus-herstel, sluiten-naar-tray, single-instance-focus en de oproep-sneltoets met jouw wijziging actief. Een OS dat slaagt bewijst de andere twee niet.