The Agil app icon: a pink kettlebell with a letter A on it.

Launching October 15

Agil is almost here.

Track your lifts. Build streaks. Create your own Agil. An iPhone app for what you lift and what you eat, with every feature in it from the first launch and nothing behind a paywall.

Days
Hours
Minutes
Seconds

Free on the App Store ·

A tour

What using it actually looks like

The Lifting side of Agil. The pill at the top reads “1590/3000 cal”, today's
                          calories from the Food side, next to a switch arrow and a coin count. The same app flipped to the Food side. Now the pill reads “8-wk streak”, the
                          lifting streak, above the day's food journal.
Agil's Profile tab. A pill at the top reads “Food · 0-wk streak” with a
                        switch arrow. Below it a Strategist rank row shows a bronze chess pawn,
                        “Initiate”, and “7 to Squire”, then rows for Edit Profile Card, Friends
                        (marked disabled in ghost mode), Premade Workouts and Achievements.
The Build tab's Presets list in the green Leaf theme: Full Body A, Push Day,
                        Upper A, Lower A, Lower B and Cardio, each with its first few exercises,
                        like “Barbell Back Squat, Barbell Bench Press, Seated Cable Row +3 more”.
The Edit Profile Card screen with Card and Character tabs. A pink profile
                        card shows the Agil mark, a lifter avatar in a progress ring, the name
                        “Bryce”, the rank “Initiate” and “Member since Jul 2026”, above the hint
                        “Tap any part of your card to edit it.”
The Food journal for Monday, Sep 14, 2026, in the indigo Midnight theme. A
                        Supplements row reads “All taken today”. The summary ring shows 1,410
                        calories left of 3,000, beside Protein, Carbs and Fat bars with grams left,
                        and a Focus row tracks Fiber at 7 of 50 g.
The Progress tab's “Sets per muscle group” bar chart in pink: Triceps 31,
                        Lats 29, Chest 28, Biceps 20, Side Delts 16, Quads 15, Hamstrings 12,
                        Calves 7, Mid-Back 4, Core 3 and Lower Back 3.
The Personal records screen: “37 all-time bests”. Each record card has a
                        trophy, the lift, the date it was set, the best set and an estimated
                        one-rep max: Tricep pushdown 6 × 230 lb (est. 276 lb), Barbell Bench
                        Press 5 × 170 lb (est. 198 lb), and Lateral raise 7 × 140 lb per side.
  1. Two tabs. One Agil.

    Agil is a lifting log and a food diary living in the same app. The pill at the top of the screen tells you which side you're on, and keeps one number from the other side in view: today's calories while you train, your lifting streak while you log lunch.

    Tap it and the whole app flips. New tabs, same account, same coins. Your training and your eating finally live one tap apart, instead of in two apps that never talk to each other.

  2. Show up. Get rewarded.

    The more consistent you get, the more it pays. Every distinct day you train in a week climbs the ladder — 10, 20, 40, 80, up to 100 coins. Reset every week.

    Coins buy themes, card styles and avatars.

  3. Ghost Mode or Friends?

    Ghost Mode is the default, and it means what it says: everything stays on this device. Private, fast, and yours alone. Turn on Friends and the only thing that ever leaves is your profile card. Never a workout, never a meal.

    Exactly what's on that card →

  4. Build your week once, then just press start

    Save the sessions you actually run as presets, like push day, lower B or cardio, and start any of them in a tap. Or open a blank session and fill it in as you train. No inspiration today? The premade catalog has whole sessions ready to add, built by hand by our team here at Agil. No AI.

    Log reps and weight set by set, keep per-exercise notes and target rep ranges, and run the rest timer between sets. It still alerts you with the phone locked.

  5. An app that's yours

    Build a character, pick a card style, showcase the badges you care about. The shop rotates daily, and everything in it is cosmetic. Nothing you can equip changes what the app tracks.

  6. Flip the notch, and it's a food diary

    Log meals against calorie and macro goals, with fiber, sugar and sodium tracked alongside protein, carbs and fat. Pick a focus nutrient and it gets its own row, check off the day's supplements, and log water as you go.

    Can't seem to remember your creatine? Agil's got you covered.

  7. See where your sets actually go

    Charts and trends from everything you've logged: training volume over time, and sets per muscle group, so a lagging body part shows up as a short bar instead of a hunch. It all comes from what's on your phone, and it stays there.

  8. Every personal record, kept

    Each lift keeps its best set and an estimated one-rep max, with the date you set it and how many sessions it took to get there. Unilateral lifts are tracked per side rather than averaged into one number.

  9. A rank that moves on consistency, not on how much you lift

    The Strategist ladder runs pawn to king. It climbs on showing up, so it rewards the part of training that's actually hard.

    See every rank's card ↓

The Strategist ladder

From Initiate to Legend

Your rank climbs on consistency, and every rank dresses your profile card a little louder: a new ring, a new piece, room for more badges. It's the one thing friends see, so it's the one thing worth showing off.

  1. The Initiate profile card: plain black with a thin pink border and a copper pawn in a grey ring.
    Initiate Pawn
  2. The Squire profile card: deep green with a silver bishop, its ring partly filled, and two showcased badges.
    Squire Bishop
  3. The Warrior profile card: dusky purple with falling rain, a gold knight in a gold ring, and three badges.
    Warrior Knight
  4. The Gladiator profile card: graphite gradient with an icy blue rook inside a ticked, dashed ring.
    Gladiator Rook
  5. The Centurion profile card: a starfield with a swirling galaxy and a sparkling platinum queen.
    Centurion Queen
  6. The Legend profile card: a purple-to-green aurora sky with a shooting star, a glowing pink king, and four sparkling pink badges.
    Legend King

And the rest

The small things that add up

Barcode scanning

Point the camera at a barcode and the food comes back with its full nutrition breakdown, sourced from the Open Food Facts database. Anything it doesn't know, you can add by hand and keep in your own library.

Achievements and the badge book

Badges land quietly and wait for you in a paged book, sealed until you open them. Thresholds are calibrated to you when you first set the app up, so they mean something whatever you're lifting.

Home screen widget

Today's calories and your focus goal on the home screen, drawn in whatever theme the app is currently wearing.

Friends, only if you want them

Share a five-character friend code. With this you can share recipes, workouts, or just an exercise you're trying.

Make it yours

Six themes, or build your own

A theme sets the accent, the background, the card color and the typeface, everywhere at once. Classic ships free and follows your phone's light and dark setting; the rest are unlocked with coins.

  • Classic · free

  • Midnight

  • Deep Sea

  • Sunset

  • Leaf

  • Woods

Nothing is behind a paywall

Agil got built because every fitness app I tried put the useful half behind a subscription, or all of the workouts and progression was tracked by AI. With Agil, I could write my vision into it: always free software that grows with you without selling your data.

Your training data isn't the product either. Workouts, food, water and bodyweight stay in the app's own storage on your phone unless you deliberately leave Ghost Mode, and even then, all that leaves is your profile card. The privacy policy spells out exactly what that includes.

For the curious

How it's built

Written by one person — a SwiftUI app and a Rust service, no framework scaffolding underneath either of them.

iOS app

SwiftUI, iOS 16.1 and up. The project is generated from a project.yml with XcodeGen rather than a checked-in .xcodeproj, so the target graph is reviewable in a diff.

  • Swift
  • SwiftUI
  • WidgetKit
  • AVFoundation
  • XcodeGen

Theming

A theme is a Codable struct of hex strings, so custom themes persist as JSON like everything else. Adaptive themes resolve to a dynamic UIColor that switches with the system appearance, and the typeface rides along on the theme via one root .fontDesign() that the whole view tree inherits.

Storage

One type touches the disk. Everything is Codable JSON written with a schema version wrapped around it, so migrations are possible later without corrupting existing saves. The widget reads today's numbers out of a shared App Group.

The shop has no backend

The daily rotation is computed offline from a date seed, so every user sees the same featured items on the same day with no server round trip and no way for the app to phone home about what you're browsing.

Backend

Rust on Axum with Diesel over SQLite. It serves the shared profile cards and the friend graph, and proxies food lookups to Open Food Facts as a read-through cache so the same barcode is only ever fetched upstream once.

  • Rust
  • Axum
  • Diesel
  • SQLite

Identity without accounts

There is no email, no password and no user table. A device generates a random UUID and a 256-bit secret held in the Keychain; the server stores only the SHA-256 of that secret and trusts the first write to claim the id. Reads of a card are public, writes must present the key.

Abuse limits

A hand-rolled per-IP token bucket, one bucket per route class, so hammering food search can't lock out card sync. The bucket map sweeps itself so it can't become the memory-exhaustion surface it was meant to prevent. Friend requests get a separate per-user daily quota that counts attempts, not successes, to bound code enumeration.

This page

Hand-written HTML and CSS with no build step and no framework. The scroll tour is anime.js, vendored as a file rather than pulled from a CDN, and it drives one class on <html>, everything it does is additive, so the page is complete without it.

  • HTML
  • CSS
  • anime.js

The details

Platform
iPhone, iOS 16.1 or later
Price
Free. No subscription. No in app purchases change the way Agil functions.
Status
Launching on the App Store October 15, 2026
Made by
Bryce Hart
Help
Support, FAQ and privacy policy