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.
Get around
The workspace
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.
Creating an 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.
Templates
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.”
The Apps folder
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.jsonholds the app’s name, icon and the settings it offers,frontendits page, andbackendits program when it has one.dataholds what the app saved andconfig.jsonthe values you set in Configuration. The.historyfolder keeps the code from before each change Chat made, and.chat.jsonthe 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.”
Build with Chat
Describing an app
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).
Entersends andShift+Enterstarts a new line. Models in the header shows the Code model, and the default lives under Models → Defaults.
Watching a build
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.
When an app reports a problem
Versions
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.
Configure
Configuration
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.
App settings
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.jsoncan’t be read, the section says “Settings show here once this app’s app.json can be read.”
Web calls
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.
Programs
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.
- 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.
Folders
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.
AI and the spending limit
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.
- 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.
Saved workflows
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.
Files, microphone and camera
- 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.
Share
Recipes
Start from a template
Find duplicate files
Study with AI flashcards
Put a workflow behind a button
{{variable}} in its prompt for what changes from run to run.Tune an instrument
Reference
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%
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.jsonis 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.


