A spatial timeline for the real world.
Malten is a timeline of where you are. Open it and see:
- 📍 Your location - street, area, postcode
- ⛅ Weather and what's coming
- 🚏 Live transport - buses, trains, countdowns
- ☕ What's nearby - cafes, shops, places
- 🕐 The rhythm of the day - sunrise, sunset, the hours
Move through the world and it updates. Take a photo of the snow falling. Note where you had coffee. Your timeline becomes a record of moments in places.
Context-aware: Updates based on where you are - walking, driving, stationary.
Timeline: Your history of places and moments. Persists locally. Private to you.
Commands: Ask for what you need.
/nearby cafe- find coffee/directions home- walking route/weather- forecast/bus- next arrivals
AI: What's happening. "What's that building?" "Where can I get lunch?" "What time is sunset?"
Notifications: Get updates when backgrounded - transport times, weather changes.
Map: See the spatial index - places, agents, streets we've mapped.
Invisible agents maintain different areas. They fetch weather, transport, places. They keep the world view fresh. You don't see them working, but they're there.
Everything has a location. Places, weather, transport, moments. All indexed spatially. Query by where you are.
Stored locally on your device. Your path through space and time. Private. Exportable. Yours.
| Region | Transport | Weather | Places |
|---|---|---|---|
| London | ✓ TfL | ✓ | ✓ |
| UK | Partial | ✓ | ✓ |
| Ireland | Partial | ✓ | ✓ |
| Global | - | ✓ | ✓ |
Transport APIs are regional. Weather and places work everywhere.
- No ads
- No tracking
- No algorithms
- Timeline stored locally
- Location used only to show you context
- We don't sell your data because we don't collect it
Free to use. Considering:
- Pro subscription for cloud backup, sync across devices, extended history
- API access for developers
- No ads, ever
Still figuring this out. If you have thoughts, open an issue.
- Go 1.21+
- Linux/macOS (Windows untested)
git clone https://github.com/asim/malten.git
cd malten
go build -o malten .Copy .env.example to .env and configure:
cp .env.example .env| Variable | Required | Description |
|---|---|---|
FANAR_API_KEY |
Yes* | AI API key from fanar.ai |
FANAR_API_URL |
Yes* | AI API endpoint |
OPENAI_API_KEY |
Yes* | Alternative: OpenAI API key from platform.openai.com |
VAPID_PUBLIC_KEY |
Optional | Web push public key (if not set, push disabled) |
VAPID_PRIVATE_KEY |
Optional | Web push private key |
FOURSQUARE_API_KEY |
Optional | Places API fallback |
MU_API_TOKEN |
Optional | User authentication |
*Either Fanar or OpenAI required for AI features.
Generate VAPID keys (optional, for push notifications):
npx web-push generate-vapid-keys# Development (serves from client/web/)
./malten -web=client/web
# Production (uses embedded files)
./maltenDefault port: 9090. Access at http://localhost:9090
sudo cp malten.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable malten
sudo systemctl start malten| Data | Source | Notes |
|---|---|---|
| Weather | Open-Meteo | Free, model-based (may differ from BBC/Google by 1-2°C) |
| Transport | TfL API | London only, other regions TODO |
| Places | OpenStreetMap + Foursquare | OSM primary, Foursquare fallback |
| Prayer Times | Aladhan API | Calculation-based |
| Routing | OSRM | Walking directions |
GPL-3.0 - See LICENSE
The world is full of signs for those who reflect.