CEagle is a cloud platform built around the TI-84 Plus CE. It is an identity provider, a build
service, a public program registry, a .ce domain registrar and the calculator client that ties
them together.
The flagship path through it is publishing: push to a public GitHub repository, and CEagle builds your program, publishes it to the registry, and an app on the calculator installs it over Wi-Fi. That is not the whole platform, and more of it is being built.
Create a project, connect a repository, write one manifest file, push.
The manifest, the Makefile, the output path, and what the build container gives you.
Turn ordinary C sources into an appvar other programs can link against.
Register an application and run the authorization code or device flow.
What the pieces are called#
Every part of CEagle has a name, and the names are used consistently throughout these docs and throughout the console.
| Name | What it is |
|---|---|
| CEagle | the whole thing |
| CEagle Accounts | the identity provider everything signs in against |
| Aerie | the developer console, where you manage projects and your .ce domain |
| Roost | the registry: where published programs live and are downloaded from |
| Flight | the build service that takes a repository and publishes a program into Roost |
| Swoop | the app on the calculator that browses Roost and installs programs over Wi-Fi |
| CEagle Domains | .ce registrations, edited in Aerie and served by their own nameserver |
The shape of it#
Most of what you do starts with a project. You create one in Aerie, give it an address, and add products to it:
A build source. Either a public GitHub repository, built and published on every push, or an upload source for TI-BASIC files you publish by hand.
OAuth 2.0 applications registered against CEagle accounts and scoped to the project.
A project declares one language, and that decides what Flight does with it:
| Language | Source | What a build produces |
|---|---|---|
| TI-BASIC | upload | the .8xp you attach, with a version number |
| ASM/C | public GitHub repository | whatever [build] output matches, usually bin/NAME.8xp |
| LibLoad library | public GitHub repository | an appvar and the .lib stub |
The language is optional at creation. A project can be made without one and left undecided; Flight asks the first time a source is connected. Either way it is chosen once and fixed after that, because the build pipeline, the file a version may carry and the way the listing is written all follow from it.
Two APIs#
For building something of your own on top of CEagle. Both are described by a generated OpenAPI 3.1 document.
Browse, resolve dependencies and download. No sign-in at all, and the only one a calculator needs.
Sign people in with their CEagle account: authorization code, device flow, refresh, discovery.
Managing projects, builds and credentials is done in the console. That API is not published.
Where to go next#
Learn the vocabulary
The pieces is one page and it makes everything else read faster.
Publish something
Publish in ten minutes goes from nothing to a program on Roost.
Read the manifest reference
The manifest documents every key in
.ceagle-flight, with its default and its limit.