← Plugin catalog
Travel

Gjirafa Travel

Gjirafa v1.8.1

Bus routes across the Balkans

Create a free account to save this plugin.

From the developer

Declared capabilities

  • Search bus routes between cities and stations
  • Compare departure times, direct routes and routes with a change, operators and prices, and filter the day's buses
  • See which days buses run and when the next bus is

Cost & access

No purchase or payment happens in ChatGPT. Search results are informational and link to search result pages on travel.gjirafa.com, where users choose a departure and buy tickets. Signed-in users can manage bookings they already bought: cancel one (the refund to the original payment method is shown before they confirm), correct a passenger's name, get the ticket email again and rate a finished trip. Cancelling and name changes are previewed and need the user's confirmation; date changes happen on travel.gjirafa.com.

Declared limitations

  • Neither place is in the Balkans: the tool isn't called
  • General travel advice: the tool isn't called
  • A flight, not a bus: the tools aren't called

Onboarding example

Find a bus from Prishtina to Tirana tomorrow morning.

View onboarding source →

Sources & dates

Developer declarations; not independently tested. Listing last checked Nov 9, 2026. Package observed Nov 9, 2026.

View package source →

Description

From the marketplace listing

Find intercity bus routes across the Balkans (Kosovo, Albania, North Macedonia and Montenegro) and between the Balkans and the rest of Europe, such as Austria, Germany and Switzerland. Ask in your own words, for example "bus from Prishtina to Tirana tomorrow". Gjirafa Travel shows departure and arrival times, travel time, direct routes and routes with a change, operators and prices, like its website does. Open the full view to see the day's buses and filter them by direct routes, time of day, price or travel time. When there is no bus on a day, it tells you when the next ones run. Ask about a route in general: "how long is the bus from Prishtina to Munich?", "which companies go to Skopje?" or "which days is there a bus to Zurich?". You get the buses per day, the first and last departure, usual prices and travel time, the stations with a map link and what other travellers say. If a line shown on Gjirafa Travel is wrong, you can report it to the team. Ask how Gjirafa Travel works, for example "can I pay on the bus?" or "what does Premium Flex cover?": the answers come from Gjirafa Travel's own FAQ, with the current Travel Flex hours. Connect your Gjirafa account to see and manage your own bookings: "show my upcoming trips", "when does my bus to Tirana leave?", "until when can I cancel?" or "fix the spelling of my name on the ticket". You see each trip as a boarding pass and its route as a timeline with connections and the operator's notices, with your ticket and Add to Apple Wallet. If an operator no longer runs a bus you booked, the trip is marked unavailable and you're told what to do. You can cancel with the refund shown before you confirm, correct a passenger's name, get your ticket by email again, rate a finished trip, find a bus back and choose which emails you get. A cancellation or a name change is shown first and only happens after you confirm. Search results link to Gjirafa Travel, where you can see all routes for the day and buy your ticket. Search works in English, Albanian, German, French, Spanish and Italian.

Language: English · Automatically detected from descriptions.

Changes

No changes recorded yet. Follow this plugin to keep track of future changes.

First seen Nov 9, 2026. Last seen Nov 9, 2026.

Keywords

Files & skills

File archives

Plugin package8 files · 29.6 KBBrowse files →
Skill instructions
get-started1.57 KB

View saved version →

---
name: get-started
description: Welcome a user who just added Gjirafa Travel. Explain in two or three sentences what it does and offer to search their first bus route.
---

# Get started with Gjirafa Travel

The user has just added Gjirafa Travel. Keep the welcome short: two or three sentences, in the user's language. If the user has already asked for something, do that instead and skip the welcome: what the user asks always comes before this skill.

1. Say what Gjirafa Travel does: it finds intercity bus routes across the Balkans (Kosovo, Albania, North Macedonia, Montenegro) and between the Balkans and the rest of Europe, such as Austria, Germany and Switzerland. Results show departure and arrival times, direct routes and routes with a change, operators and prices. It also answers how paying, tickets and Travel Flex work.
2. Say that tickets are bought on travel.gjirafa.com. Every result links there; nothing is booked or paid in ChatGPT.
3. Mention that Gjirafa Travel can also be opened from the ChatGPT sidebar, which has a search form and popular routes, and that connecting a Gjirafa account lets them see and manage their own bookings ("show my upcoming trips", "until when can I cancel?"); a cancellation or a name change is shown first and only happens after they confirm.
4. Ask where they want to travel, and when. Give one example in their language, such as "Prishtina to Tirana tomorrow" or "Prishtinë – Shkup të premten".

Don't call any tool until the user asks for something. For a new route, follow the `plan-bus-trip` skill; for their own bookings, the `my-trips` skill.
my-trips5.73 KB

View saved version →

---
name: my-trips
description: Use when the user asks about or wants to manage their own Gjirafa Travel bookings, such as "show my bookings", "when does my bus leave?", "cancel my trip", "fix the name on my ticket", "send me my ticket again", "rate my last trip" or "find me a bus back". Reads bookings with list_my_trips and get_my_trip, and changes them with the preview and confirm tools.
---

# The user's own trips

What the user explicitly asks for always comes before these guidelines.

## 1. Find the booking

- Call `list_my_trips`. By default it lists every booking like My bookings on Gjirafa Travel, newest purchase first, each one `active`, `completed`, `cancelled` or `refunded`. For "when does my bus leave?" use `when: "upcoming"` (active ones, soonest first); for earlier trips `when: "past"`. Set `language` as in `plan-bus-trip`.
- A trip stays `active` until its last bus leaves, including later today. An `openReturn` means the user can still book the way back: say how many days are left and that they pick the date on Gjirafa Travel (`manageUrl`).
- If ChatGPT asks the user to connect their Gjirafa account, wait for them to connect, then call the tool again. Don't ask for a password, an email or a booking code instead.
- If the user names a trip ("my bus to Tirana", "Friday's trip"), pick it from the list. If two trips match, ask which one.

## 2. Answer

- For a quick question (time, station, date), answer from the list in one or two sentences.
- For details, call `get_my_trip` with the `bookingId`. It returns the legs with stations, passengers, amount paid, the Flex option and what can be done with the booking (`canCancel`, `canEditPassengers`, `canResendTicket`, `canReview`). For "until when can I cancel?", give `cancelUntil` (and `changeUntil` for changes); they follow the booking's Travel Flex.
- When a trip or a leg is `unavailable`, the operator no longer runs that bus: say so first, then that the user can change the date on Gjirafa Travel (`manageUrl`) or contact Gjirafa Travel support about a refund (travel@gjirafa.com, +383 38 616 161, live chat or Viber). Don't tell them to go to the station for it.
- The widget shows the cards, so don't repeat every field. Say what the user asked: for example the departure time and station.
- When `arrival` is on a later date than `departure`, say that the bus arrives the next day.
- Before an upcoming trip, `get_trip_notices` tells you about roadworks, delays or station changes the operator posted. Mention them when there are any.

## 3. Changing a booking

The user confirms every change. Where ChatGPT can show a form, it asks them in the form; otherwise you ask them in the chat. Never invent a code.

- **Cancel**: call `cancel_booking` without a `confirmationCode`. ChatGPT shows the user a form with the refund (back to the original payment method), what isn't refunded and that it can't be undone. The booking is cancelled only if they confirm there. If the result says forms aren't available, call `preview_cancel_booking`, tell the user both amounts and that it can't be undone, and only after a clear yes call `cancel_booking` with the `confirmationCode`.
- **Passenger names**: for spelling fixes only. Call `update_passenger_names` without a `confirmationCode`. The user corrects and saves the names in a form; pass the corrections you already know as `changes` (passenger number, 1 = first name in `get_my_trip`, with the first and last name) to fill it in. If forms aren't available, `preview_passenger_names` shows each name before and after; after the user confirms, call `update_passenger_names` with the same changes and the code.
- If the result's view is `kept`, the user closed the form: nothing changed, so don't try again unless they ask.
- **Ticket email**: `resend_ticket_email` sends the ticket again to the email address of the user's Gjirafa account, the one the booking was made with. It works once per booking. No preview needed; tell the user to check their inbox.
- **R

Preview of the first 4,000 characters. Read full instructions →

plan-bus-trip3.84 KB

View saved version →

---
name: plan-bus-trip
description: Use when the user wants a bus between two places where at least one is in Kosovo, Albania, North Macedonia or Montenegro, including routes to or from Austria, Germany or Switzerland. Finds departures with search_bus_lines and helps the user choose one.
---

# Plan a bus trip

What the user explicitly asks for always comes before these guidelines.

## 1. Get the route

You need an origin, a destination and a date.

- If the origin or the destination is missing, or could be more than one place, ask one short question before searching. Example: "Mitrovica" could be Mitrovicë in Kosovo or Sremska Mitrovica in Serbia.
- If the user gives no date, search today. Turn relative dates ("tomorrow", "next Friday", "të shtunën") into YYYY-MM-DD.
- A city is enough; you don't need a station. Use the station only when the user names one.
- If neither place is in the Balkans, don't search: say that Gjirafa Travel covers routes to and from the Balkans.

## 2. Search

Call `search_bus_lines` with `from`, `to`, `date` and `language`.

- Set `language` to the user's language: `en`, `sq`, `de`, `fr`, `es` or `it`. Use `en` for any other language.
- When `language` is `sq`, write the place names in Albanian (Prishtinë, Shkup, Tiranë). Otherwise write them in English with standard spelling (Pristina, Skopje, Tirana).

## 3. Answer

The widget already shows the routes, so don't repeat them as a list. In two to four sentences:

- Point out what helps the user choose: the earliest and latest departures, the fastest route, the cheapest fare, and whether a route has a change. Like the website, the results list the direct routes first, then the routes with a change (`via`).
- When `arrivalDayOffset` is 1 or more, say that the bus arrives the next day.
- If some routes aren't bookable online (`bookableOnline: false`), say that their tickets are bought at the station; those routes may have no price (0).
- End with the `searchUrl` link: all routes for the day are there, and tickets are bought there.

## 4. When nothing is found

- `NO_ROUTES`: when the result has `nextAvailable`, say that the next buses run on that date and offer to show them; otherwise offer a nearby bigger city (for example Prishtina instead of a village near it).
- `LOCATION_NOT_FOUND`: ask the user to check the spelling, or suggest the nearest city.
- `API_ERROR`: say the search isn't available right now and give https://travel.gjirafa.com/en (https://travel.gjirafa.com/sq in Albanian).

## 5. Questions about the route in general

- How many buses a day, the first and last bus, the usual price and travel time, the distance, which companies drive it, where the stations are or what travellers say: call `get_route_info`. Quote its numbers as "about" or "usually", and link the `routeUrl`.
- Which days buses run, or comparing days before picking one: call `get_weekly_departures`, then `search_bus_lines` for the day the user picks.
- If the user says a line shown on Gjirafa Travel is wrong, or a bus didn't come or was late, offer to report it with `report_route_problem`. Say what you'll send, and send only what they told you. A report doesn't change a booking or get a refund.

## 6. How Gjirafa Travel works

- Paying (cards, Apple Pay, Google Pay; not on the bus), tickets (no need to print; seats are given on the bus), what each Travel Flex allows and until how many hours before departure, refunds when the operator cancels, changes, open returns, the student discount, the service fee or how to reach support: call `get_travel_help` with the topics, and answer from its FAQ. Don't guess a rule it doesn't give.

## Rules

- Never say that a seat is booked, held or paid. Booking happens only on travel.gjirafa.com.
- Quote prices as the results give them, with their currency. Don't promise that they won't change.
- Don't invent departures, operators or prices that aren't in the results.

Release notes

Bus search, route facts and help work without connecting a Gjirafa account; ChatGPT asks you to connect only for your own trips. Connect your Gjirafa account once and stay connected: allowing changes no longer ends the connection later. Turning on an email from Gjirafa Travel works again, dates and trip durations show in Albanian on ChatGPT web and desktop, and a booking you @-mention in the composer gives ChatGPT its details.

Declared in the saved package. Remote tools may change independently.

Package details

Publisher declarations from the archived package. These are separate from our research and the live service's terms.

Package author
Gjirafa
Keywords
See keywords
Listing translations
de-DE, sq-AL
Getting started skill
./skills/get-started/SKILL.md
Commerce declaration
Does not support commerceThis does not establish whether access is free or paid.
Review scenarios
5 positive · 3 negativeScenario counts, not test results.

Declared capabilities

  • Search bus routes between cities and stations
  • Compare departure times, direct routes and routes with a change, operators and prices, and filter the day's buses
  • See which days buses run and when the next bus is
  • Route facts: buses a day, first and last bus, usual price and travel time, stations, reviews
  • Answer how paying, tickets, Travel Flex, refunds and open returns work, from Gjirafa Travel's FAQ
  • Show your upcoming and past bookings as boarding passes (Gjirafa account)
  • Show a booking's route, connections, passengers, ticket and operator notices
  • Show until when a booking can be cancelled or changed under its Travel Flex
  • Mark a booked bus the operator no longer runs, and say what to do
  • Add your ticket to Apple Wallet
  • Cancel a booking with the refund shown before you confirm
  • Correct a passenger's name within the booking's Flex terms
  • Send your ticket email again and rate finished trips
  • Find buses for the way back
  • Show your Travel Credits balance, tier and history
  • Choose which emails Gjirafa Travel sends you, and turn off SMS
  • Report a wrong bus line to the Gjirafa Travel team
  • Open the bus search and your next trips in the sidebar

Package observed Nov 9, 2026.

Technical details
First seen
Nov 9, 2026 · 12:00 UTC
Last seen
Nov 9, 2026 · 18:00 UTC
Collection status
Collected

plugin_asdk_app_6ae07e628d448191b4939d68bf29f2b4

Download plugin data (JSON)

Plugin details: freshly prepared. Prepared . Refreshed when plugin data changes or after 6 hours. Your account and Follow status are live.