Vocabularies
Two standard vocabularies the protocol relies on: the list of categories every Capability picks one of, and the namespaced constraint terms Capabilities can claim and Needs can require.
Categories
v0.1The standard list of app categories. Every Capability picks one. Modeled on the kind of categories the Apple App Store and Google Play use, trimmed for the indie-software audience.
- Productivity
productivity - Tools for getting things done — task managers, calendars, project trackers, reminders.
- Notes & Writing
notes-writing - Note-taking, journaling, document editors, knowledge management.
- Reading
reading - RSS readers, read-later, books, long-form reading.
- Developer Tools
developer-tools - Editors, IDEs, version control, build tools, terminal apps, API clients.
- Utilities
utilities - System tools, file sync, networking, storage, automation, password managers.
- Communication
communication - Chat, email, video calls, messaging.
- Music & Audio
music-audio - Music players, audio editors, podcast clients, soundscapes.
- Photo & Video
photo-video - Image editors, video players, photo libraries, screen recording.
- Creativity
creativity - Drawing, design, generative art, music creation, 3D modeling, animation.
- Finance
finance - Budgeting, accounting, banking, investing, expense tracking.
- Health & Fitness
health-fitness - Activity tracking, nutrition, sleep, mindfulness, workouts.
- Education
education - Learning apps, language tools, study aids, flashcards, courses.
- Games
games - Video games and playful software.
- Lifestyle
lifestyle - Habits, weather, recipes, home, travel.
Constraints (core: vocabulary)
v0.1The core constraint vocabulary. Every term is namespaced (`core:term`) so matching strictness is explicit. Capabilities declare which terms they satisfy; Needs declare which they require.
Storage & connectivity
group: architectureHow the software is structured, where state lives, and how it reaches the network.
- Your data lives on your device
core:local-first The app works fully on your computer or phone, even without internet. Your data isn't trapped on someone else's server.
Technical definition
The software's primary state lives on the user's device. Sync, when present, is auxiliary — the software remains fully functional offline and the user's data is never held hostage by a server.
- Works offline
core:offline-capable You can use the main features without an internet connection.
Technical definition
The software's core features work without a network connection, even if some features (sync, AI, search) require one. Weaker than `core:local-first`: an offline-capable app may still treat the server as authoritative.
- You can run your own server
core:self-hostable Skip the company's hosting and run the software on your own machine or a server you rent.
Technical definition
The user can run the software's server components on their own hardware or VPS, with documentation sufficient to do so. Excludes software where 'self-hosting' requires reverse-engineering or unsupported builds.
- End-to-end encrypted
core:end-to-end-encrypted Your content is locked with a key only you have — even the company can't read it.
Technical definition
User content is encrypted on the user's device with keys the vendor cannot access. The vendor's servers, if any, store only ciphertext.
- Talks directly between your devices
core:peer-to-peer Your devices sync directly with each other rather than through a company's server.
Technical definition
Software whose primary data flow is directly between user devices, without a central server mediating content. Discovery or relay servers may exist but do not store user data.
Data ownership
group: ownershipWhether the user can read, move, and keep their own data without the vendor's cooperation.
- Standard, open file format
core:open-format Your data is in a format other tools can read — you're never locked in.
Technical definition
User data is stored in a documented, non-proprietary format that any third party can read and write without reverse engineering or licensing.
- Easy to export your data
core:exportable Download all your data any time, in a format you can actually use elsewhere.
Technical definition
The user can export their full data set in a usable format at any time, without paywalls, throttling, or feature degradation. Exported data must be sufficient to migrate to comparable software.
- Plain-text files you can edit anywhere
core:plain-text-storage Your content is saved as readable text files in folders you control. Open or edit them with any other tool.
Technical definition
User content is stored as human-readable plain-text files (Markdown, plain text, JSON, etc.) in a directory the user can navigate, version, and back up with standard tools. Stronger than `core:open-format`.
- No vendor lock-in
core:no-vendor-lock-in If you ever want to leave, you can take your data and your workflow with you.
Technical definition
The user can leave the software for a comparable alternative without losing data, formatting, or workflows that depend on proprietary features. Implies `core:exportable` and is usually enabled by `core:open-format`.
Source code
group: licensingThe legal terms under which the software's source code is distributed.
- Open source
core:open-source Anyone can read, modify, and redistribute the code.
Technical definition
The software's source code is published under a license that permits inspection, modification, and redistribution. Includes both OSI-approved licenses and source-available licenses with usage restrictions.
- Free software (FSF-approved)
core:libre Open source under a license the Free Software Foundation recognizes, with no use restrictions.
Technical definition
Stricter than `core:open-source`: the software is licensed under terms approved by the Free Software Foundation (GPL, MIT, BSD, Apache 2.0, etc.) without field-of-use restrictions. Implies `core:open-source`.
- Source-available
core:source-available You can read the code, but the license restricts certain uses (like reselling or running it commercially).
Technical definition
Source code is published but under terms that restrict commercial use, redistribution, or modification (e.g. BUSL, SSPL, custom licenses). Weaker than `core:open-source`.
Pricing
group: costHow the software is paid for and what payment unlocks.
- Free version available
core:free-tier There's a meaningful free version you can use indefinitely without paying.
Technical definition
A version of the software is available at no cost indefinitely, with enough functionality to be useful on its own. Trials and time-limited demos do not qualify.
- Pay once, use forever
core:one-time-purchase Buy it once and use it forever — no recurring fees to keep it working.
Technical definition
Full access is granted for a single payment, with no ongoing fees required to keep using the software the user paid for. Optional upgrades or new major versions may be paid separately.
- No subscription required
core:no-subscription The core software doesn't need a recurring payment to keep working.
Technical definition
The software's primary functionality does not require a recurring payment. Optional subscriptions (cloud sync, hosted features) may exist but the unsubscribed product is fully usable.
Privacy
group: privacyWhat the software does or does not collect about the user.
- No tracking
core:no-telemetry The app doesn't send your usage, analytics, or behavior back to the company.
Technical definition
The software does not transmit usage data, analytics, or diagnostic information to the vendor or third parties by default. Crash reports requiring explicit per-incident user consent are permitted.
- No account needed
core:no-account-required Use it without signing up or giving them your email.
Technical definition
The user can install and use the software's core features without creating an account, providing an email address, or otherwise identifying themselves to the vendor.
Automation & integrations
group: interopHow the software can be controlled, automated, and integrated by other software.
- Customizable with scripts
core:scriptable Extend or automate the app without modifying its source code.
Technical definition
The software exposes a documented automation surface (plugin API, scripting language, AppleScript, extension hooks) that lets users extend or automate it without forking the source.
- Has a developer API
core:has-api Other software can integrate with it through a documented public interface.
Technical definition
The software exposes a documented, stable network API (REST, GraphQL, RPC, etc.) intended for third-party integration. Internal-only APIs that may break without notice do not qualify.
- Has a command-line tool
core:cli-available Comes with an official command-line interface for scripting and power users.
Technical definition
The software ships an official command-line interface, either as the primary surface or alongside a GUI, sufficient for scripting and unattended use.