ankitjh4/indic-ai-skills/namma-yatri
Claude Code and agent skill by ankitjh4/indic-ai-skills
- community
Checking that the SKILL.md file is still in the repository.
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.
Install
npx vskill@latest install ankitjh4/indic-ai-skills/namma-yatriSKILL.md
Namma Yatri
Open-source, zero-commission, driver-centric ride-hailing platform built by JusPay. Powers 71M+ rides across Bengaluru, Chennai, Kolkata, Delhi, Hyderabad, Kochi, and Mysuru.
- Zero commission — drivers keep the full fare
- No surge pricing — transparent, stable fares
- Open source — AGPL-3.0 licensed
- Beckn/ONDC native — built on India's open mobility protocol
Repository: https://github.com/nammayatri/nammayatri Open Data Dashboard: https://nammayatri.in/open/ Community: https://github.com/orgs/nammayatri/discussions
Architecture
Namma Yatri follows the Beckn Protocol for open, interoperable mobility:
Key Beckn concepts:
- BAP (Beckn Application Platform) — consumer/rider side
- BPP (Beckn Provider Platform) — driver/provider side
- Beckn Gateway — routes requests between BAP and BPP
- Registry — service discovery and trust layer
Tech Stack
| 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 |
Project Structure (Monorepo)
Related Repositories
| 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 |
Development Setup
Prerequisites
- Nix package manager (with flakes enabled)
- direnv for automatic shell activation
- ~16GB RAM recommended
Backend Setup
The , prefix is a Nix-provided command runner. Run , alone to see all available commands.
Frontend Setup
Android builds require Android Studio, google-services.json, and MAPS_API_KEY.
Useful Dev Commands
| 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 |
Services & Ports
| 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.
API Overview
Rider APIs (BAP — port 8013)
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 APIs (BPP — port 8016)
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 |
Allocator (port 9996)
The ride matching engine that connects riders with nearby drivers. Handles:
- Proximity-based driver search
- Dynamic offer management (drivers quote their price)
- Ride assignment optimization
Dashboard APIs
Ops dashboards for fleet management, analytics, and administration:
- Rider dashboard — user management, ride history, support
- Provider dashboard — driver management, earnings, compliance
Contributing
Commit Convention
Sub-projects: backend, frontend
Types: feat, fix, chore, ci, docs, perf, refactor, test
Examples:
Branch Naming
Examples:
Contribution Flow
- Find or create an issue on GitHub Issues
- Fork and create a branch following naming conventions
- Make changes with atomic commits
- Ensure
cabal build allandcabal test allpass - Submit a PR with clear description
- PRs are typically squash-merged
Code Style
- Haskell: follow existing patterns in the codebase; HLS (Haskell Language Server) configured via Nix
- PureScript: standard PS conventions
- Use
direnv+ VSCode with recommended extensions for best IDE experience
Key Concepts
Dynamic Offer Model
Unlike fixed-price platforms, Namma Yatri uses a dynamic offer model:
- Rider searches for a ride
- Nearby drivers receive the request
- Each driver quotes their own price
- Rider selects from available offers
services-flake
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.
Shared Kernel
Common types, utilities, and business logic live in the shared-kernel repo. To develop against a local checkout:
Then run nix flake lock --update-input shared-kernel.
Troubleshooting
| 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 |
References
- Website: https://nammayatri.in
- GitHub Org: https://github.com/nammayatri
- Open Data: https://nammayatri.in/open/
- Beckn Protocol: https://developers.becknprotocol.io/
- ONDC: https://ondc.org
- Founder's Vision (video): https://youtube.com/watch?v=NnyoxiiZLZg
- JusPay: https://juspay.in
- services-flake: https://github.com/juspay/services-flake
- Contributing Guide: https://github.com/nammayatri/nammayatri/blob/main/docs/CONTRIBUTING.md
Jai Hind! 🇮🇳
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/namma-yatri/SKILL.md
Popularity
- Repository stars
- 65
- Repository forks
- 10
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/ankitjh4/indic-ai-skills/namma-yatri)