Debug, refactor, and explain code across every major language.
Use it for a quick fix, a whole feature, or to talk a design through before you write any code.
CREATE INDEX idx_orders_user
ON orders (user_id);
Models currently available. Pick one per conversation
Nothing to install. Open a chat and paste what you have.
An error message, a screenshot, or a short description of what you're building.
A fix, an implementation or an explanation, based on the code and error text you gave it.
Follow-up questions see the earlier messages, so you don't have to repeat yourself.
Chat, plus image and video generation, on one token balance.
Working code in most mainstream languages and frameworks. Review it like any other pull request.
Paste a stack trace or a messy function. You get a fix and an explanation of what was wrong.
Attach screenshots, logs or files to a message instead of retyping them.
Switch between OpenAI and Anthropic models per conversation.
Group chats under a project. Its instructions apply to every chat inside it.
Every thread is saved, and you can search past threads by title.
Bash one-liners to multi-service architecture. No restrictions on language or framework.
If a reply hits the model's output limit, it picks up where it stopped (up to four times).
Answers are based on the code and error text you paste in. Test them before you ship.
Generate a short clip from a prompt, with optional generated voice and sound.
Generate images, icons and diagrams from a description. Most finish in under a minute.
aps-environment entitlement is production in the release profile, and register for remote messages before asking for a token:
await messaging().registerDeviceForRemoteMessages(); const token = await messaging().getToken();
FROM node:20 AS build WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build FROM node:20-slim WORKDIR /app COPY package*.json ./ RUN npm ci --omit=dev COPY --from=build /app/dist ./dist CMD ["node", "dist/server.js"]
orders and then sorts on disk. One composite index covers both the filter and the ORDER BY:
CREATE INDEX CONCURRENTLY idx_orders_user_created ON orders (user_id, created_at DESC);
$items = Item::where('id', '>', $cursor)
->orderBy('id')->limit(20)->get();
Generate images and short videos from the same account and token balance as chat.
Generate a short clip from a text prompt: product demos, explainers, social clips.
"A product demo of a smartwatch, studio lighting, slow rotation"
Generate images from a description: product shots, illustrations, icons, diagrams.
"Isometric diagram of a three-tier web app, flat colors, white background"
Situations where a second opinion saves time.
Paste the error and the relevant code. Get a diagnosis and a fix to test.
Describe the behavior you want and get an implementation to adapt.
Ask questions about your own code instead of translating generic docs.
Get a plain-language write-up of what the code does and why.
Set instructions once per project, such as your stack, conventions and things to avoid. Every chat in the project starts with them, and old threads stay in your history so you can pick them back up.
Chats in this project share its instructions.
The Factual Library puts AI chat, image generation and video generation in one account, so you don't need a separate tool and subscription for each.
We're a small, independent team and we use it for our own work. Tokens are charged when a request completes, and your balance doesn't expire.
Sharing or selling a creation on the community feed is always opt-in.
No subscription. Your balance doesn't expire.
Failed generations aren't charged.
Report a bug or request a feature from inside the app.
The platform's usage unit. Each request is billed from its input and output size at the selected model's rate, so long threads and long code replies cost more.
No. Your balance stays until you spend it.
The OpenAI and Anthropic models that are currently enabled. You can change the model per conversation, including partway through a thread.
New accounts get 5 free chats. No card needed.
A project groups related chats and holds instructions that apply to all of them.
It continues automatically, up to four times. Very long output can still end early, so check the end of any generated file.
Yes. Attach screenshots, logs or other files to a message. Images need a vision-capable model, so another model is used if the selected one can't read them.
Yes. Both use the same token balance as chat.
Tokens are charged when a generation finishes. Failed generations aren't charged.