skills/namma-yatri/SKILL.md
Build, contribute to, and deploy Namma Yatri — India's open-source, zero-commission ride-hailing platform. Covers Haskell backend, PureScript frontend, Rust services, Beckn/ONDC mobility protocol, Nix-based dev setup, and API integration. Use when working with Namma Yatri, ride-hailing, Beckn protocol, or open mobility.
npx skillsauth add ankitjh4/indic-ai-skills namma-yatriInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Open-source, zero-commission, driver-centric ride-hailing platform built by JusPay. Powers 71M+ rides across Bengaluru, Chennai, Kolkata, Delhi, Hyderabad, Kochi, and Mysuru.
Repository: https://github.com/nammayatri/nammayatri Open Data Dashboard: https://nammayatri.in/open/ Community: https://github.com/orgs/nammayatri/discussions
Namma Yatri follows the Beckn Protocol for open, interoperable mobility:
┌─────────────┐ Beckn ┌──────────────┐ Beckn ┌─────────────┐
│ Rider App │◄────────────►│ Beckn │◄────────────►│ Driver App │
│ (BAP) │ search/ │ Gateway │ on_search/ │ (BPP) │
│ │ confirm │ │ on_confirm │ │
└─────────────┘ └──────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────────┐ ┌──────────────┐
│ Rider │ │ Provider │
│ Dashboard │ │ Dashboard │
└─────────────┘ └──────────────┘
Key Beckn concepts:
| Layer | Technology | Purpose | |-------|-----------|---------| | Backend | Haskell | Core business logic, APIs, ride matching | | Frontend | PureScript | Rider and driver mobile apps | | Location tracking | Rust | Real-time GPS tracking service | | Notifications | Rust | Push notifications via gRPC + Redis Streams | | GTFS server | Rust | Public transit data | | Build system | Nix | Reproducible builds and dev environments | | Haskell build | Cabal | Package management and compilation | | Configuration | Dhall | Type-safe config files | | Database | PostgreSQL | Primary data store | | Cache | Redis | Session/location caching | | Messaging | Kafka | Event streaming between services | | Routing | OSRM | Open-source route calculations |
nammayatri/
├── Backend/ # Haskell backend (main codebase)
│ ├── rider-platform/
│ │ ├── rider-app/ # Rider-facing APIs (port 8013)
│ │ └── public-transport/ # Public transit integration
│ ├── provider-platform/
│ │ └── dynamic-offer-driver-app/
│ │ ├── Main/ # Driver-facing APIs (port 8016)
│ │ └── Allocator/ # Ride matching engine (port 9996)
│ ├── dashboard/
│ │ ├── rider-dashboard/ # Rider ops dashboard
│ │ └── provider-dashboard/ # Provider ops dashboard
│ ├── kafka-consumers/ # Async event processors
│ ├── mocks/ # Mock third-party services
│ ├── dhall-configs/ # Dhall configuration files
│ └── load-test/ # Load testing suite
├── Frontend/ # PureScript frontend
│ ├── ui-customer/ # Rider mobile app
│ └── ui-driver/ # Driver mobile app
└── docs/ # Documentation
| Repository | Language | Purpose |
|-----------|----------|---------|
| nammayatri/shared-kernel | Haskell | Shared types, utilities, and business logic |
| nammayatri/location-tracking-service | Rust | Real-time driver location tracking |
| nammayatri/notification-service | Rust | Push notification delivery |
| nammayatri/beckn-gateway | Haskell | Beckn protocol routing |
| nammayatri/common | Nix | Shared Nix configuration |
# Clone the repository
git clone https://github.com/nammayatri/nammayatri.git
cd nammayatri
# Activate backend dev environment
ln -sf .envrc.backend .envrc
direnv allow
# Build all backend packages
cd Backend
cabal build all
# Run the full mobility stack (starts all services + DB/Redis/Kafka/OSRM)
, run-mobility-stack-dev
The , prefix is a Nix-provided command runner. Run , alone to see all available commands.
# Enter frontend dev shell
nix develop .#frontend
# Rider app
cd Frontend/ui-customer
npm install && npm start
# Driver app
cd Frontend/ui-driver
npm install && npm start
Android builds require Android Studio, google-services.json, and MAPS_API_KEY.
| Command | Purpose |
|---------|---------|
| , run-mobility-stack-dev | Start full stack via cabal (recommended) |
| , run-mobility-stack-nix | Start full stack via Nix build |
| , ghcid lib/location-updates | Fast compile feedback loop |
| , run-pgadmin | Start pgAdmin for DB inspection |
| , run-monitoring | Start Prometheus + Grafana |
| , kill-svc-ports | Kill all running services |
| cabal test all | Run test suite |
| Service | Port | |---------|------| | rider-app | 8013 | | beckn-gateway | 8015 | | dynamic-offer-driver-app | 8016 | | mock-registry | 8020 | | transporter-scheduler | 8053 | | allocation-service | 9996 |
Swagger docs available at http://localhost:<port>/swagger.
Core rider-side flows following Beckn lifecycle:
| Endpoint Pattern | Purpose |
|-----------------|---------|
| /search | Search for available rides |
| /select | Select a ride option |
| /init | Initialize booking (address, payment) |
| /confirm | Confirm and place the booking |
| /status | Check ride status |
| /track | Track driver location |
| /cancel | Cancel a ride |
| /rating | Rate the driver |
Driver-side operations:
| Endpoint Pattern | Purpose |
|-----------------|---------|
| /on_search | Receive ride requests |
| /on_select | Respond to ride selection |
| /on_init | Confirm driver availability |
| /on_confirm | Accept ride booking |
| /on_status | Send ride status updates |
| /on_track | Send location updates |
| /on_cancel | Handle cancellation |
The ride matching engine that connects riders with nearby drivers. Handles:
Ops dashboards for fleet management, analytics, and administration:
<sub-project>/<type>: #<issue-number> <short summary>
Sub-projects: backend, frontend
Types: feat, fix, chore, ci, docs, perf, refactor, test
Examples:
backend/feat: #341 Driver onboarding flow
frontend/fix: #322 Font size in ride request popup
backend/refactor: #400 Extract payment module
<sub-project>/<type>/<issue-number><short-description>
Examples:
backend/feat/GH-341/driver-onboarding
frontend/fix/GH-322/font-size
cabal build all and cabal test all passdirenv + VSCode with recommended extensions for best IDE experienceUnlike fixed-price platforms, Namma Yatri uses a dynamic offer model:
External services (PostgreSQL, Redis, Kafka, OSRM) are managed via services-flake, a Nix-based alternative to docker-compose. Services start automatically with , run-mobility-stack-dev.
Common types, utilities, and business logic live in the shared-kernel repo. To develop against a local checkout:
# In flake.nix, change:
inputs.shared-kernel.url = "path:/path/to/local/shared-kernel";
Then run nix flake lock --update-input shared-kernel.
| Issue | Solution |
|-------|---------|
| Segfault during linking | ulimit -s 9999 (stack size limit) |
| Services won't stop after Ctrl-C | , kill-svc-ports |
| VSCode direnv error | unset NIX_STORE && direnv reload |
| Slow nix build | Check Nix binary cache is configured |
| Slow cabal build | Increase jobs in cabal.project or uncomment dev flags |
| Find Nix dependency source | nix run github:nix-community/nix-melt |
Jai Hind! 🇮🇳
development
--- name: cashfree description: Use this skill whenever the user wants to integrate Cashfree payment APIs. Triggers include: creating orders or payment sessions, accepting payments via UPI/cards/netbanking/wallets, generating payment links to share via SMS/email, handling refunds, verifying webhook signatures, fetching payment or settlement status, building a checkout flow, writing Python code for Cashfree, switching between test and production environments, or understanding Cashfree error codes
development
Interact with Zoho CRM, Projects, and Meeting APIs. Use when managing deals, contacts, leads, tasks, projects, milestones, meeting recordings, or any Zoho workspace data.
testing
Access Vedic scriptures including Rig Veda, Yajur Veda, Atharva Veda, and Puranas. Use when user asks for "Vedas", "Rig Veda", "Vedic hymns", "ancient Indian scriptures", or wants Hindu religious/philosophical content.
testing
Complete Vedic astrology chart generation and interpretation. Generate birth charts (D1-D60), calculate Panchanga, Shadbala, Vimshottari Dasha, Ashtakavarga, and provide interpretations using Krishnamurthi Paddhati (KP) system, classical Parashara principles, and traditional texts. Supports both natal and horary (Prasna) charts.