Skip to content

Pyggo User Guide

Pyggo logo

Pyggo helps you keep track of the gear you own and plan what to pack for a trip. It works offline, syncs across your devices if you set up a sync provider, and runs on Android, iOS, Linux, macOS, and Windows.

For install options — release packages, Obtainium, and the F-Droid build — see Getting the app in the README.

Contents

Getting started

  1. Launch the app. The first time it runs, a short onboarding screen welcomes you. Tap Get started, confirm or change the weight unit, temperature unit, and currency symbol chosen from your device locale, then tap Continue.
  2. The Home tab opens automatically and shows your current trip, your most recently opened trip, or an empty state to plan your first trip.
  3. Use the Gear tab to add the equipment you own.
  4. Use the Pack Lists tab to create and manage reusable packing lists.
  5. Use the Trips tab to plan a trip and pack the items you need.
  6. Use the Journal tab to see every dated gear and trip journal entry in one place.
  7. Tap the settings icon in the top app bar to open Settings and manage categories, back up your data, and configure sync.

Home

The Home tab is the landing screen. It shows:

  • Today — if today falls within a trip's dates, that trip is shown with a Today label. The trip header (name, location, dates, type, and weather), the trip Overview, the trip Journal, and the today tile for that day (expanded by default) appear. If multiple trips contain today, the most recently opened one is shown.
  • Last trip — if no trip is currently active, the most recently opened trip is shown with a Last trip label, without a today tile.
  • Plan a trip — if no trips exist, an empty state with a Plan a trip button is shown.

Tap the map icon to open the full trip detail screen, or tap the + icon to plan a new trip. The ‹ and › arrows flanking those buttons step the day tile back and forward through the trip's days — for a past or future featured trip the first tap snaps to the trip's nearest day. An arrow is greyed out when there is no further day to move to.

Gear

Add a gear item

Tap + on the Gear tab, then fill in the fields. The order and which fields appear is something you can change in Settings > Lists & fields > Field management > Gear fields; the fields below are the defaults.

  • Name (required) — e.g. "Circadian Hammock Tent".
  • Type — what kind of gear it is, e.g. tent, toothbrush, bandana. Pick an existing type or add a new one right from this screen.
  • Brand — the manufacturer. Pick an existing brand or add a new one right from this screen. No brands are provided for you.
  • Icon override — tap the icon preview to pick a specific icon for this item from the categorized icon picker, which includes both Material and Iconoir icons. The chosen icon appears in gear lists, the gear chooser, and trip pack lists, overriding the type icon.
  • Description, Quantity, and Weight (entered in your selected weight unit).
  • Category — how you group your gear. Pick an existing category or add a new one right from this screen.
  • Storage location — where the item lives at home. Add new locations from this screen.
  • Compartments — the pockets or sections inside this item (e.g. "front pocket", "main chamber"). Add as many as you like; these determine what other items can be packed inside it when you plan a trip.
  • Prep — what this item needs before a trip (e.g. clean, charge, refill) and a lead time in days. Add new prep options from this screen.
  • Trip conditions — tags for the kinds of trips this item suits, like forest, lake, bike, buggy. Add new conditions from this screen.
  • Trip weather — tags for the weather this item suits, like rain, hot, cold, snow. Add new weather tags from this screen.
  • Linked items — other gear that is usually packed together (for example, link a tent to its stakes and footprint). Tap Add to choose items; the chooser has the same search and filter tools as the gear list, and you can remove linked items from the chips that appear. Links are one-way by default, so choosing tent stakes for a tent does not make the stakes link back to the tent. Use the arrow toggle in the chooser toolbar to switch to bidirectional linking when you want both items to reference each other.
  • URL and Purchase price — a link to the product page and what you paid.
  • Last brought / Last used — each shows the number of recorded dates and the most recent one, e.g. Last used: 5× Jul 1, 2026. Tap the row to expand the full history, then tap a chip's delete icon to remove a manually added date. Tap the + icon next to a field to add a new date. Duplicate days are collapsed automatically. Both last brought and last used get one chip per trip, labelled with the date and the trip name (for example, Aug 15, 2024 Yosemite). If several trips started or were used on the same day they get separate chips. Trip chips are highlighted; tap one to open that trip's detail screen. Manual last brought and last used dates also appear on separate, deletable chips. Remove an item from a trip (or delete the trip) to remove the trip-contributed date; last used trip chips can also be deleted directly from the gear edit screen because a use is a manual action.
  • Purchase date and Notes.
  • Consumable — check this if the item is single-use (it is excluded from base weight; see Weight and weather).
  • Excluded from weight — check this if the item should not count toward trip weight at all. If the item is a container with compartments, anything packed inside it is also excluded. This is useful for "Body" (clothes you are wearing) or "Car" (gear you leave behind). Exclusion is transitive: an item inside an excluded container is excluded even if the item itself is not marked.
  • Images and attachments — image attachments and other file attachments (PDFs, manuals, etc.) appear as inline fields. Tap a thumbnail to open a detail dialog where you can add or edit an optional caption. Use the + button to add an attachment and the delete icon to remove one.
  • Journal — dated notes for maintenance, usage, or warnings. See Journal for how journal entries work.

Fields that offer a dropdown list — Type, Brand, Category, Storage location, and Prep here, plus similar fields elsewhere in the app — filter as you type. A + Add entry always stays at the bottom of the list: choose + Add "…" to create the value you typed and select it in one step. Fields that take several values (Compartments, Trip conditions, Trip weather) work the same way inside their chooser dialog, where the search box doubles as the input for new options.

Numeric fields such as Quantity, Weight, and Purchase price accept decimals as you type, including a leading dot (.5) or a trailing dot (1.) while you are still entering the value. The field only reformats to a plain number once the value is complete.

Edit, duplicate, archive, and delete gear

  • Tap a gear item to open it, then tap the edit icon to change any field.
  • To archive an item you no longer use but want to keep on record, archive it from the item's actions menu or from selection mode. Archived items are hidden from the main list.
  • To delete an item, use the item's actions menu or selection mode. If sync is on, the deletion travels to your other devices — see Deleting things when sync is on.
  • To quickly add a similar item, open an item, tap the edit icon, then tap the copy icon in the gear editor's app bar. This opens a new gear editor seeded with a full copy of the current item — all fields, images, attachments, journal, linked items, compartments, and icon override are copied as-is. Change the name and any other fields, then save to create the new item.

Select and change several items at once

Long-press any gear item to start selection mode. The selection bar shows the number of selected items and actions for archive, delete, Select all, Bulk edit, and Transpose fields. Tap Select all to select every item currently visible with the active filters, then use the archive, delete, bulk edit, or transpose buttons to act on them all at once.

Bulk edit

Select one or more items and tap the edit icon to set any subset of fields at once. The bulk edit dialog looks like the normal gear edit screen, but every field starts at — keep —, which means the selected items keep their current value for that field. Change any field and every selected item receives that value. Delete the — keep — text in a text field to clear it, or choose — none — in a dropdown to clear that field. The name field is excluded from bulk edits so each item keeps its own name.

Transpose fields

Select one or more items and tap the swap icon to copy or swap values between two compatible fields. For example, you can copy Storage location into Compartments, or swap Trip conditions and Trip weather. Only fields that hold the same kind of value can be transposed.

Filter the gear list

Tap the filter icon on the Gear list to filter by category, brand, type, storage location, prep, trip conditions, trip weather, date last brought/used, the number of times an item has been brought/used, and numeric ranges for quantity, weight, and purchase price. Weight ranges use your selected weight unit. Items with an unset purchase price are excluded when a purchase price range is active.

Saved views

Tap the bookmark icon while filters are active to save the current filters as a named view, apply an existing view, rename or delete views, or set a default view that is automatically applied when the Gear list opens. Saved views are managed from the gear list and in Settings > Templates & views > Saved views.

Duplicate warnings and cleanup

When you save a gear item whose name matches an existing item, Pyggo asks whether to continue anyway. This helps catch accidental duplicates.

Names and dropdown values are trimmed before saving. Empty names are rejected, and adding a category or list value that already exists (ignoring capitalization) is ignored so your lists stay clean.

If a sync, CSV import, or backup restore brings in duplicate categories or list values, Pyggo merges them automatically. The oldest category is kept, and any gear assigned to the duplicates is moved to the surviving one.

Pack Lists

The Pack Lists tab lets you build reusable packing lists that can be imported into any trip leg. A packing list has a name, an optional description, a trip type, and a set of gear with quantities.

  • Tap + to create a new packing list.
  • Tap an existing packing list to edit its name, description, trip type, layout, and gear.
  • Add gear to a packing list by tapping the + icon and choosing one or more gear items from the gear chooser. Already-added gear is hidden from the chooser. If a selected gear item has more than one unit in your inventory, Pyggo asks how many to add, showing the maximum available quantity in the hint. After adding, Pyggo asks whether to also add any linked gear for the selected items.
  • Tap the quantity icon on a gear item to change its quantity.
  • Tap the pack into icon on a gear item to set its default pack location for this packing list. Only non-archived gear that has compartments (excluding the item itself) appears as a container option; Packed Loose remains an option if you want the item to stay unorganized.
  • Tap the delete icon on a gear item to remove it.
  • Delete an entire packing list from the packing list list screen.

The packing list editor shows the description directly under the trip type, a total weight line for the whole list, a search field, a Group by dropdown, and quick-filter chips for category, type, and consumable. Choose By custom field and pick a field in the Group field dropdown to group by a custom gear field such as Category or Prep. It uses the same gear tile style as the trip pack list, so you see the gear icon, name, and a row of quantity, weight, category, and type chips for each gear item. The right-hand action icons stack vertically on narrow screens and horizontally on wider screens. Changes are saved automatically when you go back, or you can tap the check icon at the top to save and close.

Packing lists are not tied to a specific trip; they are a template that can be reused across trips and legs. When you import a packing list into a leg, each gear item becomes a pack entry using the gear's saved pack location for that packing list.

Trips

Plan a trip

  1. On the Trips tab, tap + and enter the trip details:
  2. Name (required) — e.g. "Desert Loop".
  3. Location — choose an existing trip location or type a new one. New locations are set on the trip immediately and become available for future trips. Use a city, state, zip code, park name, or coordinates; the location is used for weather lookup.
  4. Trip type — choose from default trip types like backpacking, car camping, kayaking, etc., or add your own. Manage all trip types under Settings > Lists & fields > Dropdown lists > Trip types.
  5. Dates — the end date must be after the start date.
  6. Overview — a longer free-form Markdown note. The overview is shown at the top of the trip detail screen and can be edited there at any time. It renders as formatted Markdown, so links and lists appear correctly.
  7. Pack list layout — choose how the pack list is grouped and sorted. Choose By custom field to pick a gear field to group by, such as Category or Prep. See Sort and group the pack list.
  8. Show base weight — toggles whether pack weight and base weight are shown in the trip list.
  9. Images — add photos to a trip. The primary image is shown as a thumbnail on the Trips list.
  10. Attachments — add arbitrary files such as KML maps, PDF permits, or saved emails. Tap an attachment to open it with the default app on your device.
  11. Journal — keep dated notes for the trip, just like the gear journal. See Journal.
  12. To quickly populate a trip with the same gear as a previous one, open the trip and tap the Copy icon in the app bar, then choose the source trip. Gear already in the destination trip and archived gear are skipped. Pack locations are copied when the source container is also in the destination; otherwise Pyggo falls back to the remembered pack location for the destination's packing list.

Pack gear into a trip

  1. Open the trip and tap the Add gear icon (plus) to add gear.
  2. Select one or more base items. If any selected item has linked items that aren't already in the trip, Pyggo asks which linked items to add as well; choose the ones you want and tap Add selected.
  3. If an item has a quantity greater than 1, you will be asked how many to add to the trip.
  4. For each packed item, mark it Packed. If an item is not yet organized into a container, Pyggo asks which container and compartment to pack it in (the dialog shows the item name at the top and lists containers alphabetically), or you can choose Packed Loose at the bottom of the list. If there are no containers, packing an unorganized item marks it packed loose. If an item has a prep requirement, a checklist icon appears next to it; tap the icon to mark it Prepped. If you try to pack an item that still needs prep, Pyggo asks whether you want to mark it prepped and pack it, or cancel packing. When you choose a pack location, Pyggo remembers it for that trip's packing list and will use it automatically the next time you add the item to a trip of the same type.
  5. To pack or unpack every item in the trip at once, open the More actions menu (three dots) in the top app bar and tap Pack all or Unpack all. Pack all still prompts for prep and a pack location on each item that needs it, just as if you tapped each checkbox yourself; Unpack all marks every packed item as unpacked.
  6. To pack or unpack every item under a group header, tap the pack all (checked box) or unpack all (empty box) icon on the right side of the group header. These act only on the items in that group.
  7. To remove an item from its container without removing it from the trip, open the item's actions menu and choose Unpack. To move an item to a deliberate no-container location, choose Pack into and then Packed Loose.
  8. To change how many units of an item are in the trip, open the item's actions menu and choose Edit quantity. The new value is capped by the gear's inventory quantity (minus any other pack entries of the same gear). If you increase the quantity, Pyggo asks whether the extra units should stay in the same pack location or be packed into a new one.

Bulk selection in the pack list

Long-press any pack list entry to enter selection mode. In selection mode:

  • Each entry shows a checkbox. Tap an entry to select or deselect it.
  • A bar appears above the list showing how many items are selected and offering bulk actions.
  • Pack packs every selected unpacked item. If any of those items require prep, a single confirmation dialog asks whether to mark them prepped and pack them all at once.
  • Unpack marks every selected packed item as unpacked.
  • Prep and Unprep set the prepped state for every selected item that has a prep requirement.
  • Pack into moves every selected item into one shared container/compartment, or to Packed Loose, using a single destination dialog.
  • Mark used records the same used date for every unique gear in the selection that is not already marked used on this trip; if every selected item is already marked used, the icon changes to Unmark used and removes the trip use.
  • Save as default pack location saves each selected item's current pack location as its gear's default for the trip's packing list.
  • Remove from trip removes all selected entries from the trip after confirmation.
  • Select all (and the matching group-header icon) selects every item matching the current search and quick filters, not just the items visible on screen.
  • Group headers switch from Pack all/Unpack all to Select all/Unselect all while selection mode is active, making it easy to select or clear an entire group.

Tap the X on the selection bar, switch to the Prep list or After trip report, or finish a bulk action to clear the selection. The prep list and after trip report keep their original single-item actions and do not enter selection mode.

Edit gear from the pack list

Tap the gear icon next to any pack entry to open the full gear edit screen for that item. You can change its name, weight, description, linked items, or any other field without leaving the trip. This is the fastest way to fix a typo or adjust a weight while reviewing your pack list.

Pack entry actions

Each pack entry has action buttons on the trailing side for mark used, prep/unprep, pack into/repack into compartment, save as default pack location, edit quantity, and remove from trip. On narrow or vertical screens, the less-used actions fold into a kebab (three-dot) menu to save space; prep and pack into always stay visible as direct buttons. The packed checkbox and gear icon on the leading side and the trailing action buttons are stacked vertically with reduced padding on narrow screens, so they use less horizontal room. If the kebab menu would contain only one item, that item becomes a direct button instead, and the kebab disappears entirely when there's nothing left to fold.

The pack into backpack icon tells you the item's pack state at a glance: an outlined (empty) backpack means the item is unorganized, and a filled backpack means it has a pack location (either packed loose or inside a container). Tap it to choose or change the pack location.

Pack location preferences

Pyggo remembers pack locations per packing list. A default packing list is created for each trip type, so the same item can default to a different container for, say, a backpacking trip and a kayaking trip.

  • Automatic save. When you pack an item, the chosen container, compartment, or packed-loose state is saved for the trip's packing list. The next time you add that item to a trip of the same type, it starts in the saved location. Turn this on or off in Settings > Display & behavior > Auto-save pack location preferences.
  • Manual save. To save the current pack location without changing the global setting, open a pack entry's action menu and tap Save as default pack location. The same action is available in the after trip report.
  • Edit preferences. Open the gear edit screen and scroll to the Pack location preferences section. It shows one card for each packing list that already has a saved preference. Tap a card to change the location (container, compartment, or packed loose) or tap the delete icon to remove it. Use Add packing list mapping to create a preference for another packing list.
  • Missing container prompt. When you add gear to a trip and a selected item's preferred container is not in the trip, Pyggo asks whether to add the missing container first. If you decline, the item is still added, but it stays unorganized until you choose a pack location.
  • Trip type rename. Renaming or merging a trip type in Settings > Lists & fields updates the tripType value on the matching packing lists. Because pack-location preferences are keyed by packing list id, not by trip type, the gear preferences themselves are not renamed or removed.

Packing lists and legs

A trip leg's pack list can be populated from a packing list, saved back as a new packing list, or cleared entirely:

  • Import a packing list. The leg pack list can be built by importing one or more packing lists. The add-leg importer shows each packing list's name, trip type, and description. Each packing list entry becomes a pack entry using the gear's saved pack location for that packing list. Gear already in the leg is merged: the larger quantity wins, and the pack location is updated only if the imported preference differs. If the location changes, the item is marked unpacked so you repack it in the new spot.
  • Save as packing list. The current leg pack list can be saved as a new packing list (or overwrite an existing one). Each gear appears once with the leg's current quantity, and the saved pack locations become the gear's default preferences for the new packing list.
  • Clear leg. Clearing a leg removes every pack entry from it, so you can start over and re-import packing lists.

Trip overview and day tiles

The top of the trip detail screen shows the trip Overview card when an overview is set, and an edit icon when it is not. Tap the icon to open a WYSIWYG Markdown editor where you can write free-form notes about the trip. Links in the editor automatically get https:// prepended when you save a bare domain, so typing example.com becomes a link to https://example.com. Links in the overview are tappable and use the same color as the edit icon so they are readable in every theme.

When a trip has dates, each calendar day appears as a collapsible day tile below the journal. Each tile shows:

  • The date and a Today chip when it matches the current day.
  • A one-line weather summary when weather is available. It shows the day's low and high with precipitation; only far-future "Typical" days show a low/high range.
  • The day's location, which is derived from the leg's location (or the trip's location when the leg has none).
  • Pack and prep state icons for the leg that contains that day: an outlined bag means at least one item is not packed, and an outlined checklist means at least one item still needs prep.

Tap a tile to expand it. In the expanded state you can:

  • View the day's Location, which is derived from the leg (or trip). Edit the leg to change it.
  • View the full weather attribution and refresh the day's forecast. Tapping Refresh updates weather for the whole trip, not just this day. The weather section shows only that day's forecast with a narrative and daily precipitation, plus an expand arrow that reveals the hour-by-hour breakdown. The collapsed tile already shows the low/high for the day, so the expanded detail does not repeat it.
  • Read or edit the day's Itinerary in the same Markdown editor used for the trip overview.
  • Add or remove Images and Attachments for that day through the compact attachment row.

Tap the bag or checklist icon in a day tile header to open the Leg pack list for that leg. Single-leg trips show the trip's pack list directly below the day tiles. Multi-leg trips only show a pack list when a day tile is expanded; the list and its controls (total weight, quick filters, and search) reflect the pack list for that leg.

Sort and group the pack list

Items are sorted by the trip's Pack list layout preset. The default preset sorts by container/compartment and then alphabetically, and a new trip starts with Move to bottom enabled so packed items are crossed out and sorted below unpacked items. You can change this behavior, whether packed items are crossed out, and whether group headers appear in Settings > Display & behavior > Trip list.

Group headers are shown for sorting presets that have clear groups, such as By container (showing container and compartment names like "Backpack (front pocket)", "Packed Loose", or "Unorganized"), By category, By packed status, By prep status, and By custom field. The Alphabetical and By weight presets do not show headers. When sorting By container, the Unorganized group always appears at the top, followed by Packed Loose, then the rest alphabetically.

Each group header has pack all (checked box) and unpack all (empty box) icons on the right. Tap them to pack or unpack every item in that group. When the pack list is in selection mode, these icons change to select all and unselect all so you can quickly add or remove an entire group from the current selection. On Wear OS, the pack/unpack-all icons appear in the single centered control row after you drill into a group.

When By custom field is selected, choose a gear field (for example Type, Brand, Category, or Storage location) in the trip edit screen. If the chosen field is later removed or hidden, the pack list falls back to alphabetical order and shows a brief message.

Quick filters on the pack list

The chips at the top of the pack list are quick filters. The default row is Any, each container item in the trip (e.g. a backpack), Packed Loose, and Unorganized. A default Packed status row is also added automatically with Any, Packed, and Unpacked chips; it can be removed and re-added like any other quick filter. Tap a container chip to filter the list to that container; a second row then appears with that container's compartments, and you can tap a compartment to narrow further. Each chip shows the total weight of the matching items and a checkmark when all of them are packed. The Any chip clears the filter and is selected by default when no specific filter is active.

A search field below the quick filters lets you filter the pack list by gear name, type, brand, or description. Type to search; the list updates as you type.

Tap the Add quick filter chip (below all quick filter rows) to add a new filter field. The dialog shows the available fields in alphabetical order: Category, Consumable, Last brought, Last used, Packed status, Prep status, Purchase date, Trip conditions, Trip weather, and Weight. Selecting a field adds a new row below the container row with one chip for each value of that field found in the trip. For example, choosing Category creates chips for Clothing, Electronics, Food, etc. Choosing Weight creates chips for the ranges 0-4 oz, 4-8 oz, 8-16 oz, 1-5 lbs, and 5+ lbs. Date fields use the same buckets: 0-3 months, 3-6 months, 6-1 year, 1-2 years, 2+ years, and never. Chips with no matching items are hidden. Tap any chip to apply the filter; tap it again or tap Any to clear. The field-name chip at the start of each row has a × to remove that filter field from the trip.

Multi-leg trips

A trip can contain its own legs. Each leg has its own dates, location, and pack list. The earliest leg by start date is the primary leg.

  • Open the trip edit screen and use the Legs section to add, edit, or delete legs.
  • On the trip detail screen, the Legs card is collapsed by default. Tap it to expand the list of legs.
  • Tap Add leg in the Legs section to create a new leg. Each new leg can start with one or more packing lists, which are imported automatically. Enter an optional Location when creating the leg; this is used for weather for all the leg's days.
  • Each leg row shows its date range, location, and an edit icon. Tap the row to open the leg's pack list, or tap the edit icon to change the leg's dates, location, or both.
  • Day tiles for each leg can be expanded, and the pack/prep icons in each tile header open that leg's pack list.
  • On single-leg trips, the pack list appears directly on the trip detail screen below the day tiles. On multi-leg trips, the pack list is shown only when a day tile is expanded, and it always shows the pack list for the leg that owns that day.
  • Gear operations in a leg pack list affect only that leg. The trip's own pack list always mirrors the primary leg, so trips created before legs existed keep working.
  • Deleting the primary leg promotes the next earliest leg to primary.
  • When a leg starts after an earlier leg, pack state is inherited only when an item's pack location is exactly the same in both legs. If the location changes, the item starts unpacked in the new leg. When you pack an item into a later leg, Pyggo automatically unpacks it from earlier legs. If you try to pack an item into a leg that has not started yet, a confirmation dialog reminds you that the item should still be packed in the earlier leg.

Weight and weather

  • Total trip weight is shown just above the pack list on the trip detail screen. On single-leg trips this is below the day tiles; on multi-leg trips it appears when you expand a day tile, and it reflects the leg that owns that day.
  • The gear list and gear selection dialog show per-item weight (the weight of a single unit). The trip pack list shows total weight per pack entry (per-item weight × quantity for that entry).
  • Container and compartment weight breakdowns appear as filter chips below the total.
  • The weather row in the trip header shows a Get weather prompt when no weather has been loaded and a location is set. Tap it to fetch weather; once loaded, the header and the trip list show the low/high temperature range and the highest precipitation chance for the whole trip, with a matching weather icon. In the trip list, the weather summary appears on a third line below the trip location and dates so the full text is visible on narrow screens. Tap the weather summary to open the weather details, which shows a day-by-day forecast with a short narrative for each day, its precipitation, and a weather icon. Far-future "Typical" days are labeled up front so they are not mistaken for live forecasts. Each day shows a precipitation chance such as "20–60% rain" for forecasts and typical ranges, or a concrete historical label such as "Some rain", "Heavy rain", or "Sunny" for past days. Expand a day to see an hour-by-hour breakdown; each hour has its own icon and, when precipitation is expected, a chance line such as "22% chance of rain" or "60% chance of snow". Tap Refresh in the dialog to update the weather.
  • Refreshing weather from the trip header, the forecast dialog, or any day tile updates the weather for the whole trip. Days that inherit the trip's location use the new trip-wide forecast; days in a leg with a different location get their own fresh forecast.
  • Weather data is attributed to Open-Meteo with a tappable link. The attribution appears at the bottom of the trip list, in the trip header's updated line, and at the bottom of the forecast dialog.
  • Trip weather is updated automatically on startup and every time the app returns to the foreground. The auto-update interval is controlled in Settings > Display & behavior > Weather. Set it to Off to disable automatic updates entirely, or choose an interval from 1 to 24 hours. Automatic refreshes only happen when at least one trip overlaps the provider's forecast window and its cached weather is older than the chosen interval; errors are ignored so the app stays useful offline. When a manual refresh fails, the error message distinguishes between a missing or unresolvable location, invalid or missing dates, no forecast data for the requested range, and general network or service failures.
  • Past trip days use historical actual weather from Open-Meteo once. Once a past day has been fetched it is never requested again, so the same actual values stay in the trip. Historical days include an hour-by-hour breakdown with temperature, weather condition, actual precipitation, and day/night.
  • Dates beyond the provider's forecast range use the historical forecast API to compute Typical weather ranges (low and high temperature, precipitation chance) over the last five years of the same calendar date. These days show the history icon and are clearly labeled "Typical" because they are not live forecasts.
  • The top app bar contains the trip actions. Direct icons are shown for the most commonly used actions, and the rest are in the More actions menu (three dots). Available actions include Pack all, Unpack all, Prep list, After trip report, Export trip, Copy gear, Lock/unlock gear, Delete trip, and Edit trip. The menu order is the same as the direct icons would appear, with Edit and Delete staying visible the longest as the screen gets narrower. Pack all, Unpack all, and the pack list controls always target the currently active leg (the only leg for single-leg trips, or the leg that owns an expanded day tile for multi-leg trips).
  • Prep list toggles a filtered view of the active leg. The trip Journal is shown as its own collapsible section below the attachments row.

Pack weight and base weight

Pyggo supports two backpacking weight conventions:

  • Pack weight — the total weight of all gear in the trip.
  • Base weight — the pack weight minus the weight of any gear items marked Consumable.

Gear marked Excluded from weight does not count toward pack or base weight. If an excluded item is a container with compartments, the contents of those compartments are also excluded, and that exclusion is applied through nested containers.

When you create or edit a trip, the Show base weight toggle controls whether base weight is shown in the trip detail screen. It is on by default. When enabled, the total line reads Total Weight: <pack weight> • Base Weight: <base weight>. Container, compartment, and category chip weights are shown as "pack (base)" whenever the two values differ. Individual gear rows show "(base)" for non-consumable items and "(pack)" for consumable items. When pack weight and base weight are equal, the redundant value is omitted.

Lock a trip's gear

Once a trip's gear list is finalized, you can lock it so later edits to your master gear do not change the trip. This is useful for keeping a historical record of exactly what was packed on a past trip.

  • Open the trip and tap the lock icon in the app bar (it shows an open lock when the trip is unlocked and a closed lock when it is locked).
  • Confirm the lock to take a snapshot of every gear item referenced by the trip, including linked items and container items.
  • While the trip is locked, its weights, categories, and gear details come from the snapshot. Pack state (packed, prepped, quantity, container, compartment, notes, and images) remains editable.
  • To unlock, tap the lock icon again and confirm the warning. Unlocking discards the snapshot and reverts the trip to the current live master gear. Any master gear changes made while the trip was locked will then appear.

You can also enable auto-lock in Settings > Display & behavior > Trip gear lock. When auto-lock is on, trip gear is locked automatically after the trip end date plus the number of days you choose. A trip that is unlocked after being auto-locked will not auto-lock again unless its end date changes.

Prep list

Open the More actions menu (three dots) in the top app bar and tap Prep list to focus on gear that needs preparation. The list filters to only items with a Prep value, appends the prep condition and prep deadline to the item title (<name> • prep: <condition> • Prep by: <due date>), and sorts items by prep lead time (longest first), then alphabetically. Prepped items move to the bottom and are crossed out when Move to bottom and Cross out packed items are enabled in Settings > Display & behavior > Trip list. Tap the leading checkbox on an item to mark it Prepped or Not prepped. Overdue items are highlighted with the warning color.

After trip report

Open the More actions menu (three dots) in the top app bar and tap After trip report. The report screen shows each packed item once, even if it appears in several legs, with the total quantity across legs and the date range the gear was used. It uses the same gear tile style as the leg pack list. Tap the Mark used icon on any item to open a date picker and record a use; it defaults to the trip end date (or the current date if the trip has not ended), and a Now shortcut immediately uses the current date. After an item is marked used, the icon changes to Unmark used and tapping it removes that trip's contribution without a confirmation. Tap the Add journal entry icon to add a note about the gear. These actions update the master gear item, not any individual leg, so they apply to the trip's record of what was used and to the gear's journal.

Filter trips and saved views

On the Trips list, tap the filter icon to filter by trip type, location, and start date range. Tap the bookmark icon to save the current trip filters, apply a saved trip view, or set a default trip view that loads automatically.

Journal

Pyggo has two kinds of journal: a journal on each gear item for maintenance, usage, or warnings, and a journal on each trip for trip notes. The Journal tab shows every dated gear and trip journal entry in one place.

Journal entries are dated and time-stamped. Warning entries are highlighted with the theme error color anywhere the item appears. Journal entries support Markdown formatting: tap an entry to view a read-only preview, or use the edit icon to open a full WYSIWYG editor. Formatting is done with a toolbar (bold, italic, headings, bullet lists, checkbox lists, links, etc.) and the result is saved as Markdown so it renders correctly in the read-only preview. The editor now has bottom Cancel (X) and Save (disk) buttons; tapping Cancel discards your changes, while Save saves and closes. Pressing the system back button, tapping outside the dialog, or otherwise dismissing the editor automatically saves your changes; an empty entry is still discarded. The gear journal list is expanded automatically when there are entries and collapsed when it is empty; tap the Journal header to toggle the list open or closed.

Settings

The settings are split into focused screens so each one is quick to scan. Tap a category on the root Settings list to open its screen.

Data

In Settings > Data you can back up, restore, and exchange data with other apps:

  • Export full backup (JSON) — share or save the entire database.
  • Import backup (JSON) — paste a previously exported JSON string to restore.
  • Export gear list (CSV) — export all gear to a spreadsheet; a dialog lets you pick the delimiter.
  • Import gear from CSV — pick a CSV file and map columns to gear fields before importing.

Units

In Settings > Units you can choose:

  • Weight unit — grams, kilograms, ounces, or pounds. Weights are always stored as grams internally and converted for display.
  • Temperature unit — Celsius or Fahrenheit. Weather is always fetched as Celsius and converted for display.
  • Currency symbol — the symbol shown before purchase prices on gear items (defaults to $).
  • CSV decimal separator — how numeric values in CSV imports are parsed. Auto (default) detects whether a comma is a decimal or a thousands separator based on the surrounding digits. Dot treats . as the decimal separator and , as a thousands separator (US/UK convention). Comma treats , as the decimal separator and . as a thousands separator (European convention). Use a semicolon CSV delimiter when importing files with comma decimal separators so the comma is not treated as a column boundary.

Display and behavior

In Settings > Display & behavior you can set the look and feel of the app and the pack list:

  • App theme — choose a built-in palette (Nord, Solarized, Dracula, Gruvbox, Catppuccin, Tokyo Night, or Material You), create a custom theme, or import one as JSON. Use the Contrast and Theme mode options in the same dialog to tune how the theme is applied.
  • Packed items — choose whether packed items move to the bottom of the pack list, whether packed item text is crossed out, and whether group headers are shown.
  • Auto-lock trip gear — automatically lock a trip's gear a chosen number of days after the trip ends.
  • Auto-update weather — choose how often trip weather is refreshed automatically. The default is 2 hours. Set it to Off to disable auto-update entirely, or choose one of the preset intervals from 1 to 24 hours.
  • List details — choose which fields appear in the summary below each gear and trip pack entry, and arrange their order. The item Name is always shown as the title and cannot be removed. Pack location and Prep deadline are only available for trip pack entries; every other field can be shown on either list. The summary automatically grows vertically to fit the selected fields. Wear OS list details are configured separately in the same screen.

Lists and fields

Go to Settings > Lists & fields to add, remove, merge, or restore to defaults the categories and the values used in the gear dropdowns, and to reorder or hide fields. For example, if you accidentally created both rain and rainy as trip weather tags, you can delete rainy and choose to merge all uses into rain.

The Restore defaults icon (circular arrow) is available in each dropdown list and category manager. It restores the core default values and removes any custom entries. Any gear using a removed value will have that property cleared, so a confirmation dialog warns you before continuing. Existing default values are preserved where possible, so gear already assigned to a default category remains unchanged.

Merging a category moves all of its gear to another category; deleting without a merge leaves the gear uncategorized.

The default values are:

  • Trip conditions: all, bear country, bike, buggy, car, desert, forest, lake, plane, river
  • Trip weather: all, cold, hot, rain, snow
  • Trip types: backpacking, bikepacking, canoe, car camping, climbing, day hike, kayaking, skiing, travel
  • Prep options: charge, clean, refill
  • Type names: a core, alphabetized list (e.g. backpack, boots, cook pot, sleeping bag, tarp, tent, water bottle). Manage it under Settings > Lists & fields > Dropdown lists > Type names. Tap the palette icon next to a type to choose an icon and color; that icon and color appear next to matching gear in lists, the gear chooser, and trip pack lists. Tap All icons in the style dialog to browse Material icons by category. The picker remembers your recently used icons across sessions and lists them under the Recent category, which the filter opens on once you have used a few.
  • Brand names: no defaults. Brands can be added from the gear edit screen or imported from CSV, and managed under Settings > Lists & fields > Dropdown lists > Brand names.
  • Categories: camp, clothing, cooking, electronics, food, health/hygiene, hiking/trail, misc., sleep

Go to Settings > Lists & fields > Field management > Gear fields, Trip fields, or Pack entry fields to change the order, visibility, and names of fields. Core fields such as Name and Quantity always stay available, but all other default fields are editable and deletable. Tap the edit icon to rename a field or change its options, or use the delete icon to remove it. Hiding or deleting a field removes it from the edit screen; deleting a field also clears its values from existing items.

Core fields are automatically repaired at startup. If a core field is missing, or its essential properties (such as type or whether it is a core field) are corrupted by a sync conflict or manual edit, Pyggo restores the default definition on the next launch. You can still hide a core field by unchecking its visibility toggle, and the repair will not force it visible again. If a field's isVisible flag is missing from its raw storage, it is treated as visible by default.

Use the Restore defaults button in any field manager to re-add any default fields you have deleted and to reset the order, type, and options of existing defaults back to the shipped values. Your custom fields, renames, visibility choices, default values, and conditions are preserved, and custom fields are placed below all default fields.

Templates and views

In Settings > Templates & views you can manage saved gear templates and saved views. Tap the expand arrow on either list to see the items, rename them with the edit icon, delete them with the delete icon, or set a saved view as the default with the star icon.

Sync

See the dedicated Sync section below for setup details.

Logging

Pyggo keeps a running application log for debugging, written to one file per day on the device. Logs are kept for a week and then deleted automatically. Go to Settings > Logging to:

  • Choose the minimum level of detail to capture (Debug, Info, Warning, or Error). The default is Info; only raise it to Debug while reproducing a problem.
  • Tap View logs to open the log viewer. Pick a day from the selector, then use the toolbar to copy that day's entries to the clipboard, share the day's file, refresh, or clear all stored logs.
  • Open FAQ & known issues for common problems and their fixes.

Logs never leave the device unless you copy or share them yourself, and they can contain app internals and file paths — check a day's contents before sending it to anyone.

About

In Settings > About you can see the current app version and a link to the Pyggo source repository.

Backup and export

Back up and restore the whole database

In Settings > Data:

  • Export full backup (JSON) — share or save the entire database.
  • Import backup (JSON) — paste a previously exported JSON string to restore.

Export gear to a spreadsheet

  • Export gear list (CSV) — export all gear to a spreadsheet; a dialog lets you pick the delimiter. The export includes all gear fields such as trip conditions, trip weather, last brought, last used, purchase date, and a Journal warnings column containing any unresolved warning notes.

Import gear from a spreadsheet

  • Import gear from CSV — pick a CSV file; a dialog lets you choose the delimiter, map CSV columns to gear fields, and select the weight unit used in the file before converting to grams.
  • Supported fields include brand, type, compartments, trip conditions, trip weather, last brought, last used, purchase date, and Journal warnings.
  • Multi-value fields (compartments, trip conditions, and trip weather) can be comma- or semicolon-separated; last brought and last used dates use semicolons; the Journal warnings field uses semicolons.
  • Existing dropdown values (brands, types, trip conditions, trip weather, trip types, storage locations, and prep options) are matched case-insensitively, so imported values such as Tent reuse the existing tent entry. New values are only created when no matching value exists.
  • If the file cannot be parsed, an error message appears and the import button stays disabled until the CSV is valid and a Name column is mapped.
  • Numeric values (weights, purchase prices, and custom number/currency/weight fields) are parsed according to the CSV decimal separator setting in Settings > Units (see Units).

Export a trip packing list

On a trip detail screen, tap the Export icon (share) to save a CSV, PDF, or .trip archive:

  • CSV — a spreadsheet of the trip's primary leg; a dialog lets you choose the delimiter.
  • PDF — a printable packing list with checkbox boxes and the weight unit from Settings.
  • .trip — a ZIP archive containing the trip, all its legs and days, any images and attachments, and the packing lists referenced by its pack entries. You can choose whether or not to include packing lists. Pack state (packed / prepped) is not shared, so the imported trip starts fresh.

Share a trip to another Pyggo user

  • Export the trip as a .trip file and send it by email, messaging, or cloud storage.
  • The recipient opens Trips, taps the Import .trip button, and selects the file.
  • Pyggo remaps ids, rewrites attachment paths into the local device, and matches each packed item to the recipient's gear by id (when the same gear already exists) or by name. Items that cannot be matched are skipped.

Export a reusable packing list

A packing list can be exported to CSV or PDF from wherever packing-list actions are exposed. The output lists gear names, quantities, and weights without pack state.

Sync

Pyggo can keep your data in sync across devices using a remote WebDAV/Nextcloud folder or a Git repository. The app is offline-first: changes are stored locally and pushed when the device is online and the app is in the foreground.

What syncs and what stays on the device

The following sync across your devices:

  • Your gear inventory.
  • Your trips and pack lists.
  • Shared dropdown values and categories (brands, types, trip types, trip conditions, trip weather, prep options, storage locations, and categories).
  • A short list of settings: weight unit, temperature unit, CSV delimiter, CSV decimal separator, currency symbol, weather auto-update interval, and custom themes.

The following stay on the device and are not uploaded:

  • Theme mode (light/dark/system), contrast, and the selected theme.
  • Log level.
  • The sync configuration itself (provider, server URL, credentials).

Set up WebDAV or Nextcloud

Go to Settings > Sync to choose a provider and configure it. WebDAV / Nextcloud is fully supported. Enter the server URL (for example https://nextcloud.example.com/remote.php/dav/files/user), your username, and an app token or password. Pick a target directory on the server; the default is pyggo.

Set up Git

Git keeps your data at the root of a configured branch and optionally copies attachment files into an attachments/ directory. Enter the remote URL, branch (default main), and authentication mode. Paste an SSH private key and public key into the replace-only key dialog, provide a file-based SSH key path, or use HTTPS username/password or a token. For non-standard SSH ports, set SSH port (default 22); this field is ignored for HTTPS remotes. The private key is never shown on the settings screen; it can only be replaced through the key dialog. Only SSH key algorithms supported by the bundled SSH library on your device are accepted; the app rejects unsupported keys and shows the list of supported algorithms. If in doubt, generate a new RSA key with the Generate SSH key button.

Sync settings and running a sync

  • Adjust Autosync delay to choose how long to wait after a local change before pushing it (0 to disable automatic pushes).
  • Adjust Remote poll interval to choose how often the app checks the remote folder for changes (0 to disable remote polling).
  • Sync settings are saved when you leave Settings > Sync, switch providers, or tap Sync now; you can type freely in the URL, token, and key fields without validation firing on every keystroke. Tap Sync now to save and run a manual sync; the result appears below the button and in a snackbar. A failed result is shown in the theme error color so you can tell at a glance when a sync problem needs attention.
  • Storage save failures also surface in a snackbar, so you are notified if a write ever fails.
  • Data errors are surfaced, not hidden. If a remote JSON file becomes damaged (for example, a WebDAV upload is interrupted mid-write), the app reports which file is affected and continues with the other files. Network and timeout errors are shown in the Last sync label; corrupt data errors are shown as a snackbar so you can fix the problem. To recover from a damaged remote file, remove or rename it on the server and run a fresh sync; the app will re-upload its good local copy.

The files on the remote

Data is split into files in the remote folder:

  • gear.json — your gear inventory.
  • trips.json — trip pack lists.
  • packing_lists.json — packing lists used by trips.
  • trip_legs.json — multi-leg trip details and pack entries.
  • trip_days.json — per-day trip details.
  • lists.json — shared dropdown values and categories.
  • fields.json — your field configuration: field order, visibility, renames, and custom fields from Settings > Lists & fields > Field management.
  • settings.json — synced settings such as weight unit, temperature unit, CSV delimiter, CSV decimal separator, currency symbol, weather auto-update interval, and custom themes.

For the WebDAV/Nextcloud provider, each file is uploaded to a temporary *.tmp file and then moved into place. This prevents an interrupted upload from leaving a partially written file on the server.

Deleting things when sync is on

Delete a gear item, trip, packing list, trip leg, or trip day on one device and it goes away on your other devices at their next sync. You do not have to delete it again everywhere.

A few things worth knowing:

  • Deleting wins over an older edit, and a newer edit wins over the delete. If you delete a tent on your phone and your laptop had edited that same tent earlier, the tent stays deleted. If the laptop edited it after the deletion, the tent comes back with those edits — the most recent thing you did is the thing that sticks. When an edit is discarded this way it is reported as a sync conflict, so you can see it happened.
  • A deletion is remembered, not just applied. Pyggo keeps a small record of what you deleted and when, and that record travels with your data. That is what lets a deletion reach a device that was switched off for a month, or one you have just reinstalled and restored from a backup. The records are tiny and are kept indefinitely, so a deletion will not undo itself later on.
  • Re-using a name is fine. Deleting a "Tent" and later adding a new "Tent" creates a genuinely new item. It is not affected by the old deletion.

Linux plaintext credential fallback

Sync credentials are stored in your device's secure credential store (keyring or keystore) when available. Pyggo verifies that the credentials can be read back after saving; if not, it falls back to a fresh secret.

On Linux, if no secure credential store such as GNOME Keyring, KWallet, or KeePassXC is running, the app asks before saving sync credentials in plaintext in settings.json as a fallback. When you accept, settings.json is restricted to your account only. The app verifies those permissions on startup and whenever the file is written. Once you have acknowledged the plaintext warning, the app will not warn you again on startup unless the warning is reset by a future sync-settings change. If a secure credential store becomes available later, the app moves the credentials there automatically and shows a confirmation snackbar.

When a sync runs

When a sync provider is configured, Pyggo automatically runs a sync when the app launches. The app bar shows an online/offline icon and a spinner while sync is active.

Sync settings are saved when you leave Settings > Sync, switch providers, or tap Sync now, so the sync button always uses the values you have entered.

Tips and troubleshooting

  • Something went wrong and I want to report it. Pyggo writes a local application log, rotated daily and kept for one week. Go to Settings > Logging > View logs, pick the day the problem happened, and use the share or copy action to send it with your report. If the problem is subtle, set the log level to Debug first and reproduce it again. See Logging.
  • Do the logs contain my data? They can contain app internals such as screen names, sync timings, and file paths — but not your gear data itself. Logs stay on the device; they only leave it if you copy or share a day yourself.
  • I deleted every entry from a synced list and it came back. It should not. Deleting every entry from a synced list keeps it empty; the empty list is treated as a real empty list, not as a missing one, so it is not restored from defaults.
  • Dialogs fill the screen on narrow devices. On vertical phone screens, multi-column dialogs (such as CSV import mapping and bulk edit) stretch to the full width of the screen; on wider screens they stop at a sensible maximum so they remain easy to read.
  • A sync conflict was reported. This means two devices changed the same item and the older change was discarded in favor of the newer one. No data is silently lost; the conflict is recorded so you can see it happened.
  • Duplicate gear names. Pyggo warns you when you save a gear item whose name matches an existing item, so you can decide whether you meant to create a duplicate.
  • My dropdown lists have duplicates. If a sync, CSV import, or backup restore brings in duplicate categories or list values, Pyggo merges them automatically, keeping the oldest category and moving any affected gear to the surviving one.

Wear OS companion app

Pyggo has a Wear OS companion app for your watch. It is a slimmed-down version of the phone app, designed for quickly checking off packing while you pack. The watch works offline-first: it keeps local copies of your trips and gear so you can pack even without your phone nearby, and syncs changes when the connection is available.

What the watch can do

  • Home dashboard. The watch opens on a dashboard headed by the Pyggo icon, featuring the active trip — the trip containing today, or the most recently opened one — showing the trip name, a two-line weather summary (condition and precipitation, then low and high), and today's itinerary when today is a trip day. A weather icon opens the detailed forecast (a day summary, the narrative detail, and the hourly breakdown for the displayed day), and a backpack icon opens the pack list for the leg covering the displayed day — or prompts for a leg on multi-leg trips when it is not covered by a leg. ‹ and › chevrons flank the icons and step the summary through the trip's days, greyed out when there is no further day. Below the dashboard are menu entries for Trips, Gear, and Settings.
  • View trips and legs. The Trips entry opens a trip selector listing your trips most recent first, with dates and item or leg counts. A trip with multiple legs opens a leg list first, so you can pick which leg to pack. A trip with one leg (or a trip whose legs have not synced yet) opens its pack list directly. Each leg shows its date range and how many items are packed or prepped. The active trip is shared with the phone: opening a trip on either device makes it the featured trip on both.
  • View pack entries. Tapping a leg shows its pack entries with packed/prepped status and pack location. The trip's type icon and name appear at the top of the screen, with the leg's dates below.
  • Group and sort. The watch trip and gear screens have a single Group by icon that opens a menu for grouping. Trip pack lists can be grouped by pack location (the default), category, pack status, or prep status. Gear is grouped by category by default; you can also group by type or show a flat list. Tapping a group drills into its items, and the header changes to the group name with a status line (item and pack/prep counts for trips, item count for gear). The grouping selector and prep list icon are hidden while you are inside a group.
  • Control row. On the trip pack list, a single centered row at the top shows Group by, Prep list, and Add gear icons. After you drill into a group, the row shows only Add gear and Pack all / Unpack all icons.
  • Pack and prep. Tap the packed checkbox to toggle packed state. If the item has a prep instruction and isn't prepped yet, you'll be prompted to mark it prepped before packing. If containers are available, you'll be prompted to choose a container and compartment. Tap the prepped icon to toggle prepped state independently. Pack state is saved to the selected leg; if the leg is the trip's primary leg, the trip's main pack list is also updated on the phone.
  • Prep list. Tap the checklist icon at the top of the trip screen to see every unprepped item with a prep requirement for the current leg. Tap an item in the list to mark it prepped.
  • Add and remove items. Tap the + button to add gear to the current leg. Long-press a pack entry to remove it, change its container/compartment, or pack it loose.
  • View gear. The Gear tab lists all gear items with type and weight. Tapping an item opens a scrollable detail screen. A backpack icon at the top pushes the content into the viewable area on round displays. The detail screen shows all visible gear fields with values formatted for the watch: weights use your synced unit, the category name is shown instead of its id, and dates show only the date (no time or timezone). Attachments and images are not shown because they are not synced to the watch. A journal icon at the bottom is filled when the item has journal entries; tapping it opens the full journal.
  • Settings. The Settings tab lets you configure which fields appear in the watch's gear and trip lists, plus watch-specific packed-item behavior (move packed items to bottom or do nothing), cross-out packed items, and show group headers. Units and theme are inherited from your phone and are read-only on the watch.

What the watch cannot do

  • Edit gear items (phone only).
  • Edit trip metadata or create/edit legs and days (phone only).
  • View attachments or images.
  • Run cloud sync, import/export, or backup (phone only).
  • Access advanced settings (phone only).

Pairing

The watch syncs with your phone over the Wear OS Data Layer. Make sure your watch is paired with your phone in the Wear OS app. When you open Pyggo on both devices, they will connect automatically. Changes on either device propagate to the other in near real-time. Pack entry changes on the watch are sent as per-leg updates, so packing an item on the watch does not overwrite pack state for other legs on the phone. If the devices were disconnected, they exchange a full sync when they reconnect — the watch receives the phone's data, and the phone picks up any trips and pack changes made on the watch while it was offline.