Lalabase
Tickets, Doku, Zeiterfassung und Kundengespräche an einem Ort, durchsuchbar per KI. Für Softwarefirmen mit Kundenprojekten. Open Source: auf deinem eigenen Server oder in unserer Cloud in Deutschland.
翻譯準備中
Open-source hotel & short-term rental PMS - front desk, booking engine, folios & GST/tax billing, housekeeping, POS, WhatsApp. Agent-ready via MCP (Claude). Built on Frappe. AGPL-3.0.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Open-source hotel & short-term rental PMS — front desk, booking engine,
folios & tax billing, housekeeping, POS, and an MCP tool layer so AI agents can run the property.
Try it in 30 seconds → demo.kamrapms.com
Tap any role to sign in (credentials are on the page). Guest booking: /book · Housekeeping app: /kamra/hk檢視完整 README ↗Try it in 30 seconds → demo.kamrapms.com
Tap any role to sign in (credentials are on the page). Guest booking: /book · Housekeeping app: /kamra/hk
Kamra is a full property management system (PMS) for hotels, resorts, and short-term rentals / villas. It runs on Frappe (the framework behind ERPNext), is AGPL-3.0, and is built so humans and AI agents share the same governed APIs (booking, check-in, folios, night audit, pricing), with deterministic money (never from an LLM).
Latest release: v2.6.17
(develop ships nightly).
/hk app keeps staff signed in,
balanced city-ledger transfers, and the Kamra Agent books by room and
meal-plan name without double-booking on retriesNotes live in CHANGELOG.md. This list is a pointer, not a
second release note. How we cut stables: RELEASING.md.
Most hotel PMS software was built twenty years ago: per-room SaaS rent, locked-in data, bolt-on chatbots, and screens that need a week of training.
Kamra is the alternative we wanted:
| Pain with legacy PMS | With Kamra |
|---|---|
| Per-room / per-module pricing | Free forever (AGPL): cost doesn't scale with rooms |
| Data lock-in | You host it: on-prem, VPS, or Frappe Cloud |
| AI as a marketing slide | MCP tools: Claude (or any agent) books and audits with RBAC |
| Opaque pricing & tax | Deterministic engine: GST / SST / VAT / PB1 country packs in code + CI evals |
| New-hire training hell | Front desk UI a clerk can learn the same day |
Why open source, and why now? Most hotels can't change their PMS, connect a new tool, or let AI in, because the system is closed. AI coding agents now let a hotel's own team or a local agency build what they need, but only on an open system. Kamra gives hotels freedom to choose, ownership of their data and where it lives, privacy you can inspect, extensibility, readiness for AI agents over MCP, and no licence cost. We have nothing against other PMS; we want the next 100,000 hotels, resorts, boutiques, short-term rental companies and hosts to have an open option. Full story: kamrapms.com/why-kamra.
The software is free, and we would rather be open about the business than ask for trust. HeyKoala (Koala AI Solutions Pvt Ltd), which builds Kamra, earns from:
We never charge for rooms, users, features, data export or API access. An enterprise edition (deeper customisation, AI built into the PMS) is on the roadmap; open-source Kamra stays open and complete. Need more customisation, or want to sponsor? [email protected]. Details: kamrapms.com/how-kamra-makes-money.
From the live demo: open it and click around.
| Today: arrivals, departures, in-house, paid/due chips, room board | Reservation 360: billing, amend dates, check-in / out / cancel |
| Check-in: step by step, guest and IDs, who pays, room, deposit, registration card, keys | Check-out: the bill and why the total, late check-out, payment, invoice |
| Folio & tax invoice: per-line GST, void, move, split, proforma, payment links | Settings: one searchable page per module, staff & access, integrations |
| Restaurant POS: running bills on top, menu by category, KOT, settle, F-keys | Open bills: every running table at a glance, bills never sent flagged |
| Tape chart: rooms × dates, moves & stay amendments | Reports: occupancy, ADR, RevPAR, flash |
| New booking: live quote, multi-room, add-ons, cancellation policy | Guest profile: stay strip, merge & anonymize (DPDP) |
| Booking engine console: gallery, policies, FAQ, SEO | Dashboard: occupancy, revenue, chain roll-up |
| Laundry: pickup → return → folio; guest self-service | Self check-in: ID capture, e-sign, retention policy |
Guest-facing booking page: date range, Check availability, rates, gallery, policies, pay-at-hotel:
Same PMS for villas and multi-site STR portfolios: sellable units (room / whole-place / package), competition groups, cleaning fees, security deposits (collect / withhold / refund), Instant or Request-to-book, and a catalog that feels like a listing site.
| Catalog: check-in / out + Check availability | Places to stay: per-villa cards & from-rates |
Live example: demo.kamrapms.com/book.
| Area | What you get |
|---|---|
| Front desk | Today board, Request-to-Book inbox, check-in flow (GRC readiness + room suggestion), tape chart, ETA/ETD, guest profiles, blacklist with logged override, per-property no-show policy |
| Booking engine | Direct booking + SEO console; hotels = room grid; STRs = villa catalog |
| Short-term rentals | Hotel vs STR property kind, sellable units, per-villa locations, whole-villa check-in as one unit, villa / room availability that blocks both ways, security deposits, Instant / Request-to-book |
| Booking | Multi-room / group / corporate, returning guests, add-ons, vouchers, travel agents, day-use from the booking screen, rate lock at booking |
| Revenue | Seasons, rate plans, guardrails, hurdle rates, overbooking allowance, cancellation & no-show policy in code |
| Billing | Folios, corporate routing, group masters, charge splits, deposits, End of Day (night audit checklist + saved report pack, Night Auditor role), city-ledger payments (oldest bills first), tax invoices, cashier till (FO+POS cash, PIN pad), folio ledger; India: Razorpay / Cashfree payment links and GSTR-1 |
| F&B | POS table map, full-screen till and kitchen pass, split bills, thermal KOT, kitchen display, inventory & recipes, room posting |
| Operations | Tickets + SLA, housekeeping /hk, guest laundry end-to-end, lost & found, banquet / events (send quote, guest response, dept checklists) |
| Guests | Online pre-check-in, GRC + occupant register, editable nationality, ID retention modes |
| Privacy | Erasure, access export, guest and message retention, children's data minimised, AI-prompt redaction, privacy notice in English, Arabic and seven Indian languages |
| Messaging | WhatsApp (Meta Cloud API): confirmations, check-in links, inbox, desk tickets |
| Localization | Six country packs plus a flat-tax fallback (see Countries); English / العربية UI |
| Platform |
The property's country picks its pack. The pack decides tax, invoice wording, ID types, payment modes, the privacy notice and any country-only integrations. The core PMS never mentions GST or VAT, and one country's integrations are never offered in another.
| Country | Tax on rooms and F&B | Invoices and filings | Front desk and integrations |
|---|---|---|---|
| 🇮🇳 India | GST slab by nightly tariff (5% / 18% around ₹7,500) or fixed; F&B 5% | CGST + SGST or IGST from the GSTIN, SAC per line, amount in lakh / crore, GSTR-1 export | Aadhaar, PAN, Voter ID; UPI; Razorpay and Cashfree payment links; Form C for foreign guests; notice in 7 Indian languages |
| 🇸🇦 Saudi Arabia | VAT 15%; municipality fee as a room levy | ZATCA Phase 1: UUID, hash chain, UBL 2.1 XML and QR on every invoice and POS bill; Phase 2 groundwork | National ID, Iqama, GCC ID; Shomoos register (children's IDs kept too); Arabic UI |
| 🇦🇪 UAE | VAT 5%; municipality fee as a room levy | TRN on "Tax Invoice" | Emirates ID, GCC ID |
| 🇲🇾 Malaysia | SST 8% on rooms, 6% on F&B | Tourism Tax note for foreign guests | MyKad |
| 🇹🇭 Thailand | VAT 7% | 13-digit Tax ID; service charge as its own line | Thai ID card |
| 🇮🇩 Indonesia | Regional hotel tax (PB1 / PBJT) 10% by default | KTP, KITAS | |
| Anywhere else | One flat rate from property settings | Plain tax invoice | Passport, national ID |
Rates are defaults. The operator can change them on the property or room type
when the law changes. A new country is one Python module behind the
kamra_localization hook; see Country packs.
flowchart LR
desk["Front desk SPA<br/>React + Vite"] --> api
book["Booking engine<br/>/book"] --> api
hk["Housekeeping<br/>/hk"] --> api
agent["Claude / any MCP client"] --> mcp["MCP server<br/>116 tools"] --> api
api["Governed API<br/>RBAC · property scope · audit log"] --> core["PMS core<br/>pricing · folios · night audit"]
core --> pack["Country pack<br/>tax · invoices · integrations"]
core --> db[("Frappe v16<br/>MariaDB")]
Decimal. An AI agent can ask for a quote or post a charge, but
never invents a number.kamra/scripts/eval_harness.py runs 88 checks of real
hotel flows (double booking, split folios, tax slabs, POS, banquets,
privacy, every country pack, property scope) on a fresh site for every PR,
alongside Semgrep, CodeQL and a fresh-install check.| Path | What lives there |
|---|---|
kamra/ | Frappe app: doctypes, api.py and the domain modules (folio, pricing, cashier, POS, housekeeping, banquet, privacy…) |
kamra/localization/ | Country packs (india/, saudi.py, uae.py…) and the generic fallback |
kamra/zatca/ | Saudi e-invoicing: UBL XML, hash chain, TLV QR |
kamra/mcp_tools.py, mcp/ | MCP tool layer (hosted at /mcp) and the stdio server |
kamra/scripts/ | Eval harness, demo seed data, migrations from other PMSs |
frontend/ | React SPA. The build is committed to kamra/public/frontend, so bench get-app needs no Node |
docs-site/ | Source of kamrapms.com/docs, including the generated API and MCP references |
deploy/ | Self-host installer and one-click cloud images |
Full manual: kamrapms.com/docs (quickstart, self-hosting, features, user guide, AI/MCP, FAQ).
Going live? Use the go-live checklist.
Kamra exposes 267 REST endpoints, the same governed layer the UI and AI use:
curl -X POST https://<your-kamra>/api/method/kamra.api.get_quote \
-H "Authorization: token <api_key>:<api_secret>" \
-H "Content-Type: application/json" \
-d '{"property":"Your Property","room_type":"Your Property-DLX",
"check_in_date":"2026-08-01","check_out_date":"2026-08-03"}'
In-repo: docs/ · user guide · AI & API · self-hosting · dev notes · branding
| Method | For | How |
|---|---|---|
| Hostinger VPS | Cheapest self-host (India / SEA) | Buy KVM 2 via the Kamra referral link (20% off, or coupon KAMRAPMS; it helps keep Kamra afloat), paste the Docker one-liner below · guide |
| Docker on any VPS | DigitalOcean, Linode, AWS, your own box | One-liner below · quickstart |
| Bench | Existing Frappe / ERPNext benches | Commands below · guide |
| Frappe Cloud Marketplace | Managed Frappe hosting | Install Kamra on a private bench |
Docker:
curl -fsSL https://raw.githubusercontent.com/Kamra-PMS/kamra-pms/main/deploy/install.sh | bash
Three prompts: site domain, admin email, admin password. By default it
builds a local kamra:local image, 20 to 45 minutes the first time; 2 vCPU /
4 GB minimum (swap is added automatically under 8 GB). Then open
/kamra/setup. Update later with sudo /opt/kamra/install.sh update
(takes a bench backup --with-files first and stops if that fails).
Details: deploy/.
Prebuilt image: releases are also published as
ghcr.io/kamra-pms/kamra with tags stable (newest release), vX.Y.Z (pin
these in production) and nightly (testing). With registry access (the
package is not public yet: docker login ghcr.io with a read:packages
token), KAMRA_PULL=1 makes the installer pull and pin it instead of
building (a few minutes) and
deploy/compose/quickstart.yaml runs it
on a laptop for evaluation. The image holds only public code (Frappe,
payments, Kamra); site data and secrets stay in volumes and env on your
server.
Bench / Frappe Cloud:
bench get-app payments
bench get-app kamra https://github.com/Kamra-PMS/kamra-pms --branch main
bench --site your-site install-app kamra
After install: product UI at /kamra, booking at /book, housekeeping at /hk. Desk remains at /app. Sign in as Administrator, open /kamra/setup, create your property, add staff.
| Channel | Branch / tag | Use for |
|---|---|---|
| Stable | main / vX.Y.Z | Production, Frappe Cloud Marketplace, demo |
| Nightly | develop | Previews (nightly.kamrapms.com) |
Production installs should use --branch main (develop is the default GitHub branch for contributors). Releases are SemVer with a patch-first cadence; see RELEASING.md and CHANGELOG.md.
bench init --frappe-branch v16.25.0 frappe-bench && cd frappe-bench
bench get-app payments
bench get-app kamra https://github.com/Kamra-PMS/kamra-pms
bench new-site kamra.localhost --admin-password admin
bench --site kamra.localhost install-app kamra
bench serve --port 8000
cd apps/kamra/frontend && npm install && npm run dev # hot-reload UI on :5173
Rebuild the SPA with npm run build at the app root (emits kamra/public/frontend). Seed demo data: bench --site … execute kamra.scripts.seed_demo.execute. Details: docs-dev.md.
Connect Claude (hosted MCP, no local Python):
# Kamra Agent → Connect your AI → Connect Claude, or:
claude mcp add --transport http kamra https://pms.yourhotel.com/mcp
No public HTTPS (air-gapped or localhost)? Run the stdio server in
mcp/kamra_mcp.py instead; it serves the same tools.
Issues and PRs are welcome. The short version of CONTRIBUTING.md:
Branch from develop and open the PR against it. main only moves on a release.
Use Conventional Commits (fix:,
feat:, docs:). release-please writes the changelog from them.
Changed the UI? Run npm run build and commit kamra/public/frontend with your change.
Changed Python? Run the eval harness on a dev site and add a check for the behaviour you changed:
bench --site kamra.localhost console
>>> from kamra.scripts.eval_harness import execute; execute()
Put anything country-specific (a tax, an ID type, a gateway) in that country's pack, not the core.
Every merged PR and every issue that shapes a feature is credited in the release notes and below.
AGPL-3.0: free forever. Anyone offering Kamra as a hosted service must share modifications back.
Contributions welcome: see CONTRIBUTING.md. The full list lives on the docs site: Contributors.
Code
Docs and guides
Hotels and users who shaped it through issues
max_total_occupants on mixed adult/child bookings (#342), pre-arrival advance refunds releasing Deposit and reducing advance_paid (#343), and concurrent booking tabSeries deadlock retries (#344)Security
Built by HeyKoala.
Kamra means "room". The door in our logo is open on purpose.
| Multi-property RBAC, dark mode, property time zone, System Health, AI provider presets, CSV migration (eZee / Cloudbeds presets), eval harness in CI |