Your second-hand store, together.
Translation pending
CommerceTypeScript · PLpgSQLGitHub @KomisioOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Second-hand deserves first-class software. Open-source consignment software for second-hand stores. Sweden first. Platform preview.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Give great things a second life. Give your store a better system.
Open-source software for second-hand stores selling on consignment.
Built in the open. Designed for people and their AI agents.
Your stock is unique. Your software should keep up.
A jacket comes in. Someone else owns it. Your store sells it. You keep a
commission. They get their share. Every item has a story — and someone waiting
to be paid.Read the full README ↗A jacket comes in. Someone else owns it. Your store sells it. You keep a commission. They get their share. Every item has a story — and someone waiting to be paid.
Komisio is being built around that reality: the handover, the people, the sale and the settlement. Sweden first, with Nordic ambitions. A focused system for the shops giving things another life.
Less chasing spreadsheets. More running your store. That's the goal.
Your store, your team. Create a store, invite colleagues and give each person the right access. The foundation includes owner, admin, staff and read-only roles, store switching and a web interface in eight languages (Swedish, English, Norwegian, Danish, Finnish, German, Spanish, Italian).
AI should do the legwork. You keep control. Our architectural direction is one shared engine for the interface, extensions and AI agents. Agents should prepare work for approval, with permissions and business rules enforced by the system. Photo-based reception, optional AI suggestions and local MCP reads are available. Supported agent proposals persist for authorized staff review; sales, returns, seller balances and manual payout confirmation use the same engine. Real-store acceptance and unresolved financial integrations remain separate verification work. See how AI fits.
Open means you can look under the hood. Inspect the code, run the current platform locally and help shape what comes next. AGPL-3.0-or-later, with a documented extension exception. No AI subscription is needed to run the preview.
Focused on second-hand. Connected to the rest. A day close becomes a balanced voucher under the store's own account map, downloadable as SIE 4 or sent straight to Fortnox as one voucher per day; the same data can feed systems such as Accounted. Komisio invents no accounts and no postings and is not a bookkeeping application. Accounting export · Fortnox connection.
Sell through your POS. Keep the seller informed. Accepted items go out to Zettle with stock and product photos, and completed receipts come back as sales with automatic seller credit; unmatched receipts are held for a person. The live pilot runs against a real merchant. Zettle live retrieval.
Pay the people who trust you. Seller balances, payout requests, approval and a settlement batch that pays every seller who is due, with a numbered statement per seller. Settlement · Economy overview.
Agents that prepare, people who decide. Reception proposals, price evidence from the store's own sales, an automatic markdown agent under the store's policy, a weekly brief written from the same numbers, and a local MCP server with scoped tools for reads and staged proposals. How AI fits · MCP tools.
The whole chain runs today: register a seller, receive a bag or a single garment, inspect and accept it with frozen terms, sell it through the POS or by hand, close the day, export or send the voucher, and pay the seller. Sellers can hand in on their own with a QR handover and follow their money in a seller portal. Every financial fact is append-only, every correction is a new row, and every agent action is staged for a person to approve. See versioned seller agreements, self drop-off, the functional roadmap and the open domain questions.
The new single-garment reception path starts with photos and observations. A configured AI adapter can propose a description and a selling price backed by supplied evidence. Staff reviews the result, then the seller sees the exact photos, price and terms on their phone and approves or declines.
flowchart LR
A[Photos and observations] --> B[Optional AI proposal]
A --> C[Staff review]
B --> C
C --> D[Exact mobile review]
D --> E[Saved seller decision]
The web interface and local AI tools use the same engine. Photo access is private, reviews are versioned, and a changed or revoked review cannot authorize a new decision. No camera hardware or market-price feed is connected yet. The hosted AI adapter stays off until explicitly configured; manual preparation works now. See the pilot walkthrough.
This is a working platform preview, not a finished store system. The hosted preview is a test environment; use test data rather than real consignor or financial records.
| Available in the current platform | Still being built or planned |
|---|---|
| Registration, e-mail confirmation, login, password recovery, optional MFA | Production environment and the pilot gates (checklist) |
| Stores, four access roles, invitations, access log, eight languages | Payout rails (Swish, Stripe) beyond manual "paid with reference" |
| Seller registration, bag and single-garment reception, labels, self drop-off | Space booking and booking fees |
| Versioned agreements, inspection drafts, acceptance with frozen terms | Shopify and web shop channels |
| Sales, returns, store-owned purchases, one currency per store | Hosted agent OAuth and a hosted agent runtime |
| Zettle: product export with stock and photos, live receipt retrieval | Wall-camera pairing and automated capture |
| Day close, account map, SIE 4 export, Fortnox voucher sending, reconciliation | Print transport for label printers |
| Seller ledger, payouts, settlement batch, statements, seller portal | Cross-store price comparison (opt-in) |
| Economy overview, weekly and monthly brief, markdown agent, price evidence | Similar-photo detection with a model (design) |
| Staged operations with risk levels, MCP server with scoped tools | Multi-tenant provider connections with per-store credentials |
| Trial and plans with Stripe, automation actor, sellers list, duplicate checks | Automatic Fortnox sending, retention and erasure |
| Item search by title, category and stage; agent reads and price proposals | Agent seller lookup |
| Chains with numbers in total and item moves; stock report per category | Shopify products out and orders in, item import, partner API |
The hosted preview is a staging environment for the pilot store and the people building Komisio. See pilot gates for what stands between the preview and an external pilot, and the functional roadmap for the phases.
The software carries no licence fee, whoever runs it. A store has three ways to use Komisio and nothing in the product favours one of them: run it yourself, hire any hosting partner, or let Inority host it. The last of those is three months at no cost, then 299 SEK per store and month excluding VAT, with no lock-in period. Leaving is meant to stay possible: the data and the images export, and the same software runs anywhere. See pricing for what hosting covers and how the AI credits are metered, and the onboarding and plans design for how a store starts.
You don't need to write code to make Komisio better.
If this is the kind of software you want to see in the world, give the repo a star and follow along. We're early enough for your input to matter.
Requires Node.js (24 LTS recommended), npm, Docker and Supabase CLI 2.117.0. The initial container download can take a few minutes.
git clone https://github.com/Komisio/komisio.git
cd komisio
npm ci
npm run db:start
npm run db:migrate
node scripts/configure-local.mjs
npm run dev
Open http://127.0.0.1:3000. Register and confirm your email in the local test inbox at http://127.0.0.1:54324, using the same browser.
The helper writes public local client settings to ignored .env.local;
it needs no application service-role key. Do not run it over existing hosted
settings. Apply changes with npm run db:migrate; do not reset an existing database.
This runs the app locally with Supabase containers. A packaged application Docker deployment is not yet available. See self-hosting and hosted staging setup for configuration and limits.
Next.js · React · TypeScript · Supabase (PostgreSQL, Auth and row-level security). One SQL engine holds every rule: the web interface, the MCP tools and the extensions call the same functions, and pgTAP proves them. Money is integer minor units, facts are append-only, and every non-human write is staged.
| Start here | What you'll find |
|---|---|
| Architecture | Target boundaries for the core, UI, AI and extensions |
| Functional roadmap | Phases P1 to P6, what is delivered and what is next |
| Staged operations | How agent and extension writes wait for a person |
| How AI fits | A jacket's journey, file responsibilities and current limits |
| Decisions | What we've chosen and why |
| Roadmap | Milestones and acceptance scenarios |
| Extensions | The proposed integration contract |
| Agent instructions | How AI-assisted contributions are governed |
| Domain knowledge | Working notes for humans and agents |
| Security | Reporting vulnerabilities and access principles |
Application routes live in app/, shared UI in components/, identity and
permissions in lib/platform/, database migrations and tests in supabase/,
and translations in messages/. Earlier schema explorations live in
experiments/; they are not the active product model.
Checks: npm run lint, npm run typecheck, npm test, npm run build,
npm run test:db, npm run test:concurrency and npm run test:e2e.
Browser tests use synthetic accounts and must target only a local test environment.
AGPL-3.0-or-later, with an exception for extensions using only the documented extension API. Contributions use the DCO, with signed-off commits and no CLA. Code, comments and documentation are in English; the application speaks eight languages; fixed e-mail templates exist in Swedish and English.
Good things deserve another life. Good software deserves to be open.