CLI Reference
Complete reference for Teachfloor CLI commands and options.
Installation
npm install -g @teachfloor/teachfloor-cli
Command Reference
Quick Reference Table
| Command | Description | Requires Auth | Requires App Folder |
|---|---|---|---|
| Global | |||
teachfloor version |
Display CLI version | No | No |
teachfloor login |
Authenticate with Teachfloor | No | No |
teachfloor logout |
Log out from account | No | No |
teachfloor whoami |
Show current user and org | Yes | No |
| App Management | |||
teachfloor apps create <name> |
Create new app | Yes | No |
teachfloor apps start |
Start dev server | Yes | Yes |
teachfloor apps upload |
Build and upload app | Yes | Yes |
| View Management | |||
teachfloor apps add view |
Add view to app | Yes | Yes |
teachfloor apps remove view |
Remove view from app | Yes | Yes |
teachfloor apps add settings |
Add settings view | Yes | Yes |
| Permission Management | |||
teachfloor apps grant permission |
Add permission | Yes | Yes |
teachfloor apps revoke permission |
Remove permission | Yes | Yes |
| Distribution | |||
teachfloor apps set distribution |
Set public/private | Yes | Yes |
Global Commands
teachfloor version
Display CLI version and check for updates.
teachfloor version
Output:
teachfloor version 1.2.0
A newer version of the Teachfloor CLI is available: 1.3.0
teachfloor login
Authenticate with your Teachfloor account.
teachfloor login
Prompts:
- Email address
- Password
- Organization (if you have multiple)
What it does:
- Authenticates with your Teachfloor account
- Stores credentials securely
- Saves selected organization
Example:
$ teachfloor login
✔ Enter your email: john@example.com
✔ Enter your password: ••••••••
✔ Select an organization: My Organization
✓ Login successful!
teachfloor logout
Log out from your Teachfloor account.
teachfloor logout
What it does:
- Removes stored credentials
- Clears organization selection
teachfloor whoami
Display current authenticated user and organization.
teachfloor whoami
Output:
User: john@example.com
Organization: my-organization
App Management
teachfloor apps create <app-name>
Create a new Teachfloor app.
teachfloor apps create my-awesome-app
Arguments:
app-name: Name of the folder to create
Prompts:
- App ID: Unique identifier (auto-generated)
- Display Name: User-facing name
- Description: Short description
- Version: Semantic version (default: 1.0.0)
What it does:
- Creates app on the platform
- Generates project structure with all necessary files
- Installs dependencies
Generated Structure:
my-awesome-app/
├── src/
│ ├── index.js
│ └── views/
│ └── App.jsx
├── public/
│ └── index.html
├── teachfloor-app.json
├── package.json
├── webpack.config.js
└── tsconfig.json
Example:
$ teachfloor apps create notes-app
✔ App ID: notes-1234567890
✔ Display Name: Notes App
✔ Description: Take notes while learning
✔ Version: 1.0.0
✓ Creating app...
✓ Setting up app structure...
✓ Installing npm dependencies...
✓ App "Notes App" created successfully in "notes-app".
teachfloor apps start
Start development server for your app.
teachfloor apps start
Options:
-m, --manifest <path>: Use custom manifest file
What it does:
- Validates your app manifest
- Uploads manifest to platform
- Opens browser to install the app
- Starts development server with auto-reload
Requirements:
- Must be run inside an app folder
- Must be logged in
- Version must not be approved/published
Example:
$ cd my-app
$ teachfloor apps start
✓ Manifest file updated
Install URL: https://app.teachfloor.com/myorg/courses?app=abc123@1.0.0
Starting development server...
webpack 5.x.x compiled successfully
With custom manifest:
teachfloor apps start --manifest teachfloor-app.dev.json
teachfloor apps upload
Build and upload your app to the platform.
teachfloor apps upload
What it does:
- Builds your app for production
- Uploads bundled files to the platform
- Creates a new version
Requirements:
- Must be run inside an app folder
- Must be logged in
- Version must not be already published
Example:
$ teachfloor apps upload
✓ Building the production bundle...
✓ Uploading files...
✓ App uploaded successfully.
View Management
teachfloor apps add view
Add a new view to your app.
teachfloor apps add view
Prompts:
- Select viewport: Choose from available viewports
- Component name: React component name (PascalCase)
- Generate example: Include example code
What it does:
- Shows available viewports for your app
- Creates component file in
src/views/ - Updates your app manifest
Example:
$ teachfloor apps add view
✔ Select the viewport for your view: teachfloor.dashboard.course.list
✔ Enter the name of your component: CourseListView
✔ Generate a "Getting Started" example view? Yes
✓ Component view created at src/views/CourseListView.jsx
✓ Manifest file updated
✓ View "CourseListView" added successfully under "teachfloor.dashboard.course.list".
Generated Component:
import React from 'react'
import { Container, Text } from '@teachfloor/extension-kit'
const CourseListView = () => {
return (
<Container>
<Text>CourseListView</Text>
</Container>
)
}
export default CourseListView
teachfloor apps remove view
Remove a view from your app.
teachfloor apps remove view
Prompts:
- Select viewport: Choose viewport to remove
What it does:
- Removes view from your app manifest
- Note: Component file remains in
src/views/(delete manually if needed)
Example:
$ teachfloor apps remove view
✔ Select the viewport to remove: teachfloor.dashboard.course.list
✓ View removed successfully.
teachfloor apps add settings
Add a settings view to your app.
teachfloor apps add settings
Prompts:
- Component name: Settings component name
- Generate example: Include example code
What it does:
- Creates settings component in
src/views/ - Adds
settingsviewport to your manifest
Example:
$ teachfloor apps add settings
✔ Enter the name of your component: AppSettings
✔ Generate a "Getting Started" example view? Yes
✓ Settings view created at src/views/AppSettings.jsx
✓ Manifest file updated
Permission Management
teachfloor apps grant permission
Add a permission to your app.
teachfloor apps grant permission
Prompts:
- Select permission: Choose from available permissions
- Purpose: User-facing explanation
Available Permissions:
user_read: Read user profileuser_events_read: Read user activitycourse_read: Read course datamodule_read: Read module contentelement_read: Read learning elements
Example:
$ teachfloor apps grant permission
✔ Select permission: course_read
✔ Enter purpose: Display course information in notes
✓ Permission added to manifest.
Updates Manifest:
{
"permissions": [
{
"permission": "course_read",
"purpose": "Display course information in notes"
}
]
}
teachfloor apps revoke permission
Remove a permission from your app.
teachfloor apps revoke permission
Prompts:
- Select permission: Choose permission to remove
Example:
$ teachfloor apps revoke permission
✔ Select permission to revoke: course_read
✓ Permission removed from manifest.
Distribution
teachfloor apps set distribution
Set app distribution type (public or private).
teachfloor apps set distribution
Prompts:
- Distribution type: public or private
Distribution Types:
- private: Only your organization (default)
- public: Listed in marketplace (requires review)
Example:
$ teachfloor apps set distribution
✔ Select distribution type: public
✓ Distribution type updated to public.
Updates Manifest:
{
"distribution_type": "public"
}
Important for Marketplace Submission:
You must set distribution to public before submitting your app for marketplace review. Apps with distribution_type: "private" cannot be submitted to the public marketplace.
Workflow for Public Apps:
# 1. Set distribution to public
teachfloor apps set distribution
# Select: public
# 2. Upload your app
teachfloor apps upload
# 3. Submit via dashboard
# Navigate to Settings → Apps → Your App → Submit for Review
Command Requirements
Authentication Required
These commands require authentication:
teachfloor apps createteachfloor apps startteachfloor apps upload
Check authentication:
teachfloor whoami
Re-authenticate:
teachfloor logout
teachfloor login
App Folder Required
These commands must be run inside an app folder:
teachfloor apps startteachfloor apps uploadteachfloor apps add viewteachfloor apps remove viewteachfloor apps add settingsteachfloor apps grant permissionteachfloor apps revoke permissionteachfloor apps set distribution
Check if in app folder:
ls teachfloor-app.json
Common Workflows
Create and Test App
# 1. Install CLI
npm install -g @teachfloor/teachfloor-cli
# 2. Login
teachfloor login
# 3. Create app
teachfloor apps create my-app
cd my-app
# 4. Add a view
teachfloor apps add view
# 5. Start dev server
teachfloor apps start
# 6. Make changes and test
# (dev server auto-reloads)
# 7. Upload when ready
teachfloor apps upload
Update Existing App
# 1. Navigate to app folder
cd my-app
# 2. Make code changes
# edit src/views/MyView.jsx
# 3. Update version in manifest
# Edit teachfloor-app.json: "version": "1.1.0"
# 4. Test locally
teachfloor apps start
# 5. Upload new version
teachfloor apps upload
Add View to Existing App
cd my-app
# Add view
teachfloor apps add view
# Select viewport and enter component name
# Implement component
# edit src/views/NewView.jsx
# Test
teachfloor apps start
Troubleshooting
"Not logged in" error
Solution:
teachfloor login
"Not in app folder" error
Check for manifest:
ls teachfloor-app.json
Create new app if needed:
teachfloor apps create my-app
cd my-app
"Version already approved" error
Solution: Increment version in teachfloor-app.json:
{
"version": "1.0.1"
}
Build errors
Clear cache:
rm -rf node_modules
npm install
npm run build
Getting Help
Built-in Help
teachfloor --help
teachfloor apps --help
teachfloor apps create --help
Version Info
teachfloor version
Support Channels
- Email: support@teachfloor.com
- Documentation: docs.teachfloor.com
Next Steps
Learn about best practices:
→ Continue to Best Practices