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
settings
viewport 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 create
teachfloor apps start
teachfloor 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 start
teachfloor apps upload
teachfloor apps add view
teachfloor apps remove view
teachfloor apps add settings
teachfloor apps grant permission
teachfloor apps revoke permission
teachfloor 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