Skip to content
CSuite
GuideApps

Building apps in CSuite.

Every part of the Apps workspace, with a figure for each, followed by recipes built on the app templates. The short version lives on the main guide; this page is for when you want to know exactly what an app can reach and what CSuite asks you first.

Part 1

Get around

1.1

The workspace

The Interest calculator open in Apps, with Chat beside it. The numbers match the legend below.

Open Apps, the last entry in the rail’s second group, below Arena. An app is a tool CSuite writes from your description, such as a calculator, a tracker, a timer or a reader for your news feeds. You describe it in Chat, CSuite builds it and runs it right here, and you change it the same way. Apps live in their own folder rather than your project folder, so they stay put when you switch projects.

1 · Apps
The Apps folder pill with Check the Apps folder for changes, the + for Create, Templates and Import, and every app in the folder with when it last changed. A row’s More actions has Show in Finder, Export and Delete.
2 · Name
The app’s name. Click it to rename the app, and press Enter to keep the new name.
3 · Reload and side panel
Reload the app, and show or hide Chat and Configuration. A warning button joins them while the app reports a problem.
4 · Models
The Code model that builds and changes the app; hover it to see which model that is.
5 · The app
The running app, in its own space.
6 · Chat and Configuration
Chat creates and changes the app as you describe it. Configuration holds the app’s settings and earlier versions.
7 · Composer
Describe the app, or a change to it, and press Send.
1.2

Creating an app

A new app: nothing is built yet, three examples and Pick a template are offered, and Chat waits for a description.
1
Create it
Press New app on the empty Apps screen, or press the + beside the folder pill and choose Create. The new app is listed as Untitled app and opens with Chat showing, even if you hid the side panel before.
2
Describe it
Type what the app should do in Chat (“Describe the app you want…”) and press Send. Or press an example in the empty app (Interest calculator, Tip splitter or Unit converter), or press Pick a template there to choose from all of them. It fills the box, so you can change it before you send it.
3
Let it build
The app reads Building your app… while Chat works, and appears the first time Chat tries it, so you never see a half-written page. The first name Chat gives the app replaces Untitled app.
  • Chat builds with your Code model, set under Models → Defaults, where it “Lists only models good at coding and agentic tool calling.” With none available, Chat says “Choose a Code model from the Models menu to build apps.” Replicate and local Hugging Face models can’t build apps.
  • Building and running apps needs an active license. Without one, the app and Chat show the License required panel, and Show in Finder and the files on disk stay available.
  • An open app keeps running while you look at another app, and a build keeps going too.
1.3

Templates

The App templates dialog: each row is a description that goes into Chat when you pick it.

Press Pick a template on the empty Apps screen or in an empty app, or the + and then Templates. The App templates dialog lists thirteen descriptions, from an Expense tracker, a Focus timer and a Habit tracker to a Weather board, a News reader, a Duplicate finder and a Workflow runner. As the dialog says, “Pick a description to start a new app. It goes into Chat, where you can change it before you send it.”

TipTemplates are descriptions, not finished apps. The Code model designs every app from scratch, so two apps made from the same template can look different. Add your own details before you send, such as a currency or the cities you want.
1.4

The Apps folder

Inside the Apps folder: one folder per app, holding its code, its settings and what it saved.

Every app is a folder inside one Apps folder, which is CSuite Apps in your Documents folder unless you choose another. The folder pill at the top of the list shows it; click it to choose another Apps folder. The list is read from the folder, so after you copy an app in by hand, press the refresh button on the pill (“Check the Apps folder for changes”).

  • app.json holds the app’s name, icon and the settings it offers, frontend its page, and backend its program when it has one.
  • data holds what the app saved and config.json the values you set in Configuration. The .history folder keeps the code from before each change Chat made, and .chat.json the conversation.
  • A copied app folder is a new app. It starts with no folder choices, permissions or approvals, and a fresh spending limit.
  • Delete in a row’s More actions asks first, because the app “moves to the trash, along with everything it saved.”
  • The Apps folder can’t be inside CSuite’s own data or hold it, as your home folder does: “That folder can’t hold apps, because it contains CSuite’s own data. Choose another folder.”
Part 2

Build with Chat

2.1

Describing an app

Chat after two messages: the first built the app, the second added a column. Hovering Models shows the Code model.

Chat is a conversation with the Code model about this one app. Say what the app should do in your own words and language, and ask for changes the same way, such as “Add a column for the interest earned each year” or “Let me enter a monthly deposit”. The app’s own text is written in your language, and it follows CSuite’s light or dark look.

  • Chat can read and write the app’s code, try the app and read what it reports, and, while Web calls is on, add npm packages to the app or download a library from the web into it. It can also read what the app saved and its settings, except hidden ones, and what it reads goes to your Code model’s provider. It can’t run commands on your computer, and it can’t open the folders you chose for the app.
  • An app’s npm packages, such as one for editing PDFs, are installed into its folder and prepared for its page while the app reads Getting this app ready…. The first time, CSuite also downloads esbuild, about 5 MB, which does that preparing. A package made for Node, rather than for browsers, needs a program (see Programs).
  • When an app needs a key of its own, such as for a weather service, Chat adds a hidden setting for it and asks you to paste the key in Configuration rather than in the chat.
  • Every message that changes the code saves a version first, and Configuration keeps up to the latest 30, so you can go back (see Versions).
  • Enter sends and Shift+Enter starts a new line. Models in the header shows the Code model, and the default lives under Models → Defaults.
2.2

Watching a build

A build in progress: the step Chat is on, the files it has written, and what it plans next.

While Chat works, a line under your message names the step it is on, such as “Reading frontend/app.js…”, “Writing frontend/styles.css…” or “Trying the app…”, with a clock. Press the line to open everything done so far: each file read, written or edited with a check or a cross, and what the model says before each change. The app’s row in the list reads Building….

  • Chat tries the app itself, reads the errors it reports and fixes them before it answers, so most problems never reach you.
  • Stop ends the turn. What it already changed stays in the app: “Stopped. Some of the changes are already in your app. Send another message to continue, or restore the latest version in Configuration to undo them.”
  • When a library is downloaded, a note stays in the chat: “Added from the web: …” with where it came from.
  • Choosing another Apps folder during a build first asks “Stop this build?”, because leaving stops the change Chat is making.
2.3

When an app reports a problem

The app’s chart failed to draw, so a warning button sits in the header, and pressing it filled Chat’s box.
1
Spot the warning
When the running app reports an error, a warning button appears beside Reload: “This app reported a problem. Ask Chat to fix it.”
2
Press it
Chat’s box fills with “Fix the problem this app is reporting.”, and the error’s details go along with it.
3
Send it
Send it as it is, or add what you saw first. If the fix makes things worse, restore the version from before it.
2.4

Versions

Versions under General settings: one per message that changed the code, newest first.

Chat saves a copy of the code before the first change of every message. Configuration lists them under Versions as “Before: …” followed by your message, newest first, each with the date and time it was saved. It keeps up to the latest 30, and drops the oldest sooner once they take up more than 1.2 GB together. Until the first change it reads “Chat saves a copy here before each change.”

  • Restore (“Put the code back as it was before this change”) asks first: “The app’s code goes back to how it was before this change. What it saved and its settings stay as they are.” The code you had is saved as a version too, so a restore can be undone.
  • A message that only asks a question saves no version, and neither does the one that first builds the app, since there is no code yet to save. Restore waits while Chat is working: “Wait until Chat has finished.”
  • A turn that fails or is stopped keeps the changes it made, and its message points to the latest version to undo them.
Part 3

Configure

3.1

Configuration

General settings for the Interest calculator: Access, AI, the app folder and versions.

The Configuration tab holds two sections, each opening and closing on its own and remembering which way you left it. App settings are the settings this app offers. General settings are what CSuite provides for every app:

  • Access: the Web calls switch, a switch for the Microphone and the Camera once the app has asked for them, and Program for an app that has one.
  • AI: the app’s Spending limit (USD), what remains and what it has used, and a switch for each type of model it has asked to use.
  • App folder: the app’s folder name and Show in Finder on macOS, Show in File Explorer on Windows, or Show in file manager on Linux.
  • Versions: the copies Chat saved, each with its date and Restore.
3.2

App settings

The Interest calculator’s own settings: two selects, a number with a slider, and a switch.

App settings are whatever the app declares: text, numbers, switches, choices, a folder or a saved workflow. A number with a lowest and highest value also gets a slider. Changes apply to the running app straight away, without a call to any model.

  • To add one, ask Chat: “Let me pick the currency in Configuration.” Until an app has any, the section reads “This app has no settings of its own yet. Ask in Chat to add some.”
  • A hidden setting holds a key or a password. Configuration masks it and Chat isn’t shown its value, though it is kept as plain text in the app’s config.json.
  • If the app’s app.json can’t be read, the section says “Settings show here once this app’s app.json can be read.”
3.3

Web calls

The Weather board reads its forecasts from Open-Meteo, so Web calls stays on under Access.

Web calls (“Lets this app reach websites.”) is on for every new app. With it on, an app can fetch from public websites and online services, and show pictures or play audio and video from the web.

  • Turn it off and the app reloads, and then it can’t go online, so a call it tries fails. Only you can turn it back on; Chat tells you rather than working around it.
  • With Web calls on, an app can send what it saved and its settings to a website, so keep it off for an app that has no need to go online. An app’s page can’t reach your provider keys, your other apps, or files outside its own folder. A program can also reach the folders you choose, and CSuite limits the rest, but that isn’t a full sandbox.
  • Chat can download libraries, and CSuite can install an app’s npm packages, only while Web calls is on. Packages already installed keep working with it off. The switch also covers an app program’s access to the network: turning it off restarts the program without network access.
  • Scripts and fonts from the web stay blocked while an app runs; the libraries and packages it uses are files in its own folder.
3.4

Programs

The first time the Duplicate finder opens, CSuite asks before its program runs.

Most apps run entirely in their page, npm packages included. When an app needs something a page can’t do, such as reading a folder on your computer or using a package made for Node, or when you ask for one, Chat gives it a program: code that runs on your computer beside the page, with Node.js.

1
Allow it
CSuite asks before a program first runs: “Allow this app to run a program on this computer?” The dialog says what the program can reach: it can read the app’s folder and any folder you choose, and write to its data folder. It also says plainly: “CSuite limits what it can reach, but that isn’t a full sandbox, so allow only apps you trust.”
2
Wait for Node.js, once
The first app with a program downloads Node.js, about 60 MB, while the app reads Getting this app ready…. CSuite checks the download and tests that the program’s limits hold on your computer before any program runs.
3
Change your mind later
Under Access in Configuration, Program reads “Runs on this computer, limited to this app’s folder and any you chose.” with Stop allowing, or “Not allowed to run.” with Allow.
  • CSuite asks again when the program changes outside Chat, such as after you edit its files by hand, and when an app newly asks for network access. Changes Chat makes stay allowed.
  • With Web calls on, a program can reach public websites through CSuite. It reaches your local network, or opens connections of its own, only when its app asks for network access and you allow it. Program under Access then adds: “With Web calls on, it can reach the internet and your local network.”
  • A program can use npm packages it lists, including ones made for Node. CSuite installs them into the app’s folder, beside the page’s, before the program starts, which needs Web calls on.
  • A program starts when you open its app and stops when you close the app or after 10 idle minutes. It never starts at login.
3.5

Folders

The Duplicate finder with Pictures chosen to scan, read only, and its program allowed.

An app reads its own folder and writes only its data folder. To work with other files, an app offers a folder setting, and you choose the folder.

  • The setting shows No folder chosen until you press Choose and pick one in the dialog. Clear takes the access away again. Under it, Read only. or Read and write. says what the app may do there.
  • Chat can add a folder setting, but only you can fill it. The page never sees the folder’s path; only the app’s program does, so reading a folder needs a program.
  • A folder that overlaps your Apps folder warns first: “This folder overlaps your Apps folder”, since the app could reach the data of your other apps.
  • Refused outright: a folder that overlaps CSuite’s own data, which includes your whole home folder; a path containing a *; and write access to a folder that holds the app itself.
3.6

AI and the spending limit

Flashcards has used $0.380 of its $5 limit on text models, so $4.62 remains.

An app can use your models to write text, make an image, read a line aloud or make a short video, through the same providers and keys as the rest of CSuite. Text calls can also read the app’s own pictures and stream their answer as it is written.

1
Allow each type
The first time an app asks for a type of model, CSuite asks you, for example “Allow this app to use your text models?”, and warns that the calls use your own API keys and can cost money. Your answer stays until you change that type’s switch under AI in Configuration.
2
Set the limit
Every app has one Spending limit (USD) for its whole life, $5 to start, not per day. Configuration shows what remains and what it has used, “and AI calls stop when nothing remains.” To give an app $5 more, raise its limit by $5.
  • An app uses the model you set for that type under Models → Defaults and can’t choose its own. Local models are free and keep working when nothing remains. A cloud model with no listed price can’t be used, because its cost can’t be counted.
  • AI calls are off while Chat is working on the app, and reloading or closing the app stops the calls it still has running.
  • The limit stops the next call, not one already running. Text and video are priced by their length, so one long call can go past the limit by its own cost.
  • An app left open while you look at another app keeps running and can keep spending within its limit until its view closes, at most two hours after you left it.
3.7

Saved workflows

A Workflow runner with a saved workflow chosen in its settings. The gallery holds real renders of one product prompt.

An app can run one of your saved workflows: it fills in the inputs, runs it and shows what it made. The app offers a workflow setting, and you choose which workflow it runs.

  • The setting is a select of your saved workflows, on No workflow chosen until you pick one. Only you can choose it; Chat and the app can’t.
  • The app fills the workflow’s text variables and hands it pictures, audio or video for its inputs. The results are saved in the app’s data folder rather than your project, and nothing is written back to the workflow.
  • “Its runs count toward the spending limit.” A run whose estimated cost is more than the app has left doesn’t start.
  • Workflows run only while the app is open, one run at a time. Chat sees the names and inputs of your saved workflows so it can wire the right one in.
3.8

Files, microphone and camera

The Instrument tuner asks for the microphone the first time it listens.
  • Files: an app keeps the files it makes in its data folder, and can offer to save one where you choose, in a save dialog that opens on your Downloads folder.
  • Clipboard: an app can copy text and pictures to your clipboard, and can’t read what is on it.
  • Links in an app open in your browser.
  • Microphone and camera: the first time an app asks, CSuite asks you (“Allow this app to use your microphone?”), and your answer becomes a switch under Access. On macOS the system also asks once for CSuite itself. Turning a switch off reloads the app.
  • An app keeps the microphone or camera while it is open, even while you look at another app, for up to two hours. Your system’s indicator shows when either is in use.
  • Saving and copying work only while you are using the app: “This only works while you’re using the app. Click in the app and try again.” Screen capture, location and notifications are never offered to apps.
Part 4

Share

4.1

Export, import and delete

A row’s More actions: Show in Finder, Export and Delete.

Export in a row’s More actions saves the app as a zip. Import in the + menu adds an app from one. Neither needs a license, though running an imported app does.

  • The zip holds the app’s code, its app.json and the values of its settings. Hidden settings, chosen folders and workflow picks stay behind, and so do what the app saved, its chat and its versions.
  • An imported app is a new app: no folder choices, permissions or approvals, and a fresh spending limit. If it has a program, CSuite asks before it runs.
  • Import only apps from people you trust. A program in someone else’s app runs within the limits above, which are not a full sandbox.
  • A zip of over 20,000 files or 500 MB is refused (“This zip is too large to import.”), and so is a file that isn’t a CSuite app.
Part 5

Recipes

5.1

Start from a template

1
Pick the Expense tracker
Press +, then Templates, and choose Expense tracker. Its description lands in Chat.
2
Make it yours
Add what matters to you before you send it, such as your currency and the categories you use, then press Send.
3
Keep shaping it
Ask for more as you use it: “Add a budget per category and warn me when I go over it.” If a change goes wrong, restore the version from before it.
5.2

Find duplicate files

1
Build the Duplicate finder
Start it from Templates. Chat usually gives it a program and a folder setting, since a page alone can’t read your files.
2
Allow and choose
Press Allow when CSuite asks about the program, then choose the folder to scan in Configuration. The setting says Read only., which is all a duplicate finder needs.
3
Scan
The app lists files with the same contents, their sizes and where each copy is. Deleting is yours to do in Finder or File Explorer, unless you ask Chat for a read-and-write version.
5.3

Study with AI flashcards

1
Build Flashcards
Choose Flashcards in Templates and send it. Paste some notes into the app to make the first cards.
2
Allow text models
CSuite asks whether the app may use your text models. Lower its spending limit in Configuration if $5 is more than you want it to spend.
3
Keep it free
Set a local model as your Text default under Models → Defaults, and the cards cost nothing and the app’s AI calls stay on your computer.
5.4

Put a workflow behind a button

1
Save the workflow
Build and save the workflow in Workflows, with a {{variable}} in its prompt for what changes from run to run.
2
Build the Workflow runner
Start it from Templates, then choose your workflow in its setting under Configuration.
3
Run it from the app
Fill in the inputs and run. The results appear in the app’s gallery, and each run counts toward the app’s spending limit.
5.5

Tune an instrument

1
Build the Instrument tuner
Choose Instrument tuner in Templates and send it.
2
Allow the microphone
Allow it when CSuite asks, and on macOS when the system asks for CSuite the first time.
3
Play a note
The app shows the nearest note and how far sharp or flat you are. Turn the Microphone switch off in Configuration when you are done tuning.
5.6

Share an app

1
Export it
Open the app’s More actions in the list and choose Export, then save the zip.
2
Send the zip
Hidden settings such as keys aren’t in it, so the other person adds their own in Configuration.
3
Import on the other side
They press +, then Import, and choose the zip. The app arrives without any permissions, so it asks them for each one.
Part 6

Reference

6.1

Keyboard shortcuts

The Apps keys work while the focus is outside the running app and outside any field, and Esc does nothing while Chat is working on the app. ⌘ is Ctrl on Windows and Linux. The main guide lists every workspace’s shortcuts together.

Apps

C
Show or hide Chat and Configuration
R
Reload the app
Esc
Go back to the Apps screen. The open app keeps running.

Chat

Enter / Shift+Enter
Send a message / new line

Everywhere

⌘+ / ⌘- / ⌘0
Zoom the interface in, out, or back to 100%
6.2

Troubleshooting

Building

  • “Choose a Code model from the Models menu to build apps.” Set Code under Models → Defaults, or add a provider whose models are good at coding and tool calling. Replicate and local Hugging Face models can’t build apps.
  • “That didn’t work, and your app wasn’t changed.” Send the message again, or try another Code model.
  • “That didn’t finish, and some of the changes are already in your app.” Send another message to continue, or restore the latest version in Configuration to undo them.
  • “This app’s packages couldn’t be set up” Check your connection and that the Web calls switch is on in Configuration, then press Try again. If it keeps failing, ask Chat to fix it: a package made for Node can’t run in an app’s page.
  • “This app can’t be opened” Its app.json is missing something or isn’t valid. Ask Chat to fix it, or restore a version.
  • “This app needs a newer CSuite” It was made with a later version. Update CSuite to open it.
  • “This app’s folder is gone. It may have been moved or deleted.” Put the folder back in the Apps folder and press the refresh button on the folder pill.

Programs and folders

  • “This app’s program isn’t allowed to run.” Press Allow on the app or under Access in Configuration.
  • “Couldn’t download Node.js, which app programs run on.” Check your connection and press Try again.
  • “CSuite couldn’t confirm that app programs stay within their limits on this computer, so they won’t run.” The safety check failed on this computer. Apps without a program still work.
  • “App programs can’t run on this computer’s operating system or processor.” Apps without a program still work here.
  • “This app’s program won’t start, because its folder holds a link leading outside it.” Remove the link the message names from the app’s folder.
  • A folder can’t be chosen. It overlaps CSuite’s own data (your home folder does), its path contains a *, or the app asked to write to a folder that holds the app itself. Choose a folder further in, such as Pictures.

AI, web and workflows

  • “This app has used up its spending limit. You can raise it in Configuration.” Raise Spending limit (USD) under AI, or set a free local model as the default for that type.
  • “This app isn’t allowed to use these models. You can change that in Configuration.” Turn that type’s switch on under AI in Configuration, such as Text models.
  • “No model is available for this. Add a provider or choose a default in Models.” Set a default for that type under Models → Defaults, or add a provider that offers one under Models → Providers.
  • “The model chosen for text can’t read pictures. Choose one that can in Models.” Set a Text default that can read pictures under Models → Defaults.
  • “This model has no known price, so an app can’t use it within a spending limit.” Choose another default for that type in Models.
  • “This model keeps failing, so the app’s AI calls have stopped.” Check the provider’s key under Models → Providers, then reload the app.
  • “AI calls are off while Chat is working on this app.” Wait for Chat to finish, then try again.
  • “Web calls are turned off for this app.” Turn Web calls on under Access if you want the app to go online.
  • “Apps can’t reach this computer or your local network.” An app’s web calls reach only public websites. To reach a device on your network, the app needs a program with network access: ask Chat for one, and allow it when CSuite asks.
  • “Choose a workflow for … in Configuration first.” Pick one in the app’s workflow setting. If it says the chosen workflow no longer exists, pick another.
  • “Workflows don’t run while Chat is working on this app.” Wait for Chat to finish, then run the workflow again.
  • “This workflow would cost about …” The estimate is more than the app has left. Raise its limit.
  • “This only works while you’re using the app. Click in the app and try again.” Saving a file and copying need the app in front, with focus in it.

License and sharing

  • Apps show License required. Running and building apps needs an active license. After 14 days offline the license needs a connection again; open Account → License and press Refresh.
  • “This file can’t be imported. It is damaged or doesn’t hold a CSuite app.” Ask for a fresh export. A zip made by zipping an app’s folder in Finder or File Explorer works too.
  • “This app is too large to export.” The app’s code passes 20,000 files or 500 MB. Use Show in Finder and remove files the app no longer uses.

One-time payment. Yours forever.

No subscriptions. No seats. No renewals. Buy CSuite once, future updates included.

Secure checkout via Stripe. Already have a license? Download the app