Coaching that
converses.
Streaming AI replies, voice or text. The only personal trainer that answers at 2am when your member is doubting their squat depth.
01/AI for fitness · Buenos Aires
An AI personal trainer your gym’s app can plug in. Conversational coaching, routines that rewrite themselves in real-time, integrable in any existing app via MCP.
02/Built for the apps your members already open




03/Manifesto
Gym apps haven’t kept up.
Routines stay frozen. Edits feel like
filing a tax form. Members close the
app and open ChatGPT instead.
We close that gap. Gohan AI ships your members a coach that knows their level, their equipment, their injuries — and rewrites their programme as they live their week.
No new app. No new login. Inside the brand they trust. Your backend, your data, your members. Our intelligence.
04/Three pillars
Streaming AI replies, voice or text. The only personal trainer that answers at 2am when your member is doubting their squat depth.
Members ask. The plan changes. The app updates live. Conversation maps to structured database mutations through Claude tool use.
We ship as a module + MCP server. Your engineers wire it into your existing app in an afternoon. Your brand. Your members. Our brain.
05/Try it · in the page
Below is the real product, not a video. Sign in with the demo account and chat with the coach. The routine you see updates in real-time as the AI rewrites it.
06/How it works
Drop our SDK into your existing app. One npm install. We don't replace your stack — we augment it.
Pass tenant config — logo, colors, members table mapping. Members never leave your brand.
Members chat naturally. Our AI calls structured tools to mutate plans. Realtime pushes the changes back to every screen.
07/For developers
Gohan ships as a React component plus a custom MCP server. Your backend stays sovereign — we read and write through your DB schema, multi-tenant from day zero, scoped by RLS.
// Drop Gohan AI into your gym app
import { GohanCoach } from "@gohan-ai/react";
export function MemberApp({ user, brand }) {
return (
<GohanCoach
memberId={user.id}
tenant={{
slug: "your-gym",
primaryColor: brand.primary,
logoUrl: brand.logo,
}}
// Member chats. Plan rewrites
// itself. Realtime to your DB.
/>
);
}08/Numbers we obsess over
09/Talk to us