Skip to main content

TEN Manager

In the TEN ecosystem, almost everything is a component. A TEN app, a TEN extension, and a TEN protocol are all components. To help developers manage operations related to these components, the TEN Framework provides a tool called TEN Manager.

Understand the tech

TEN Manager is the command-line package manager for the TEN Framework ecosystem. It provides essential tools for creating, installing, and managing TEN packages throughout your development workflow.

TEN Manager provides the following key functionalities:

  • Package creation: Generate new apps, extensions, and protocol packages from templates
  • Dependency management: Automatically resolve, fetch, and install required packages
  • Cloud Store integration: Browse and install packages from the TEN Cloud Store
  • Development tools: Launch the visual designer and run custom build scripts
  • Validation: Check application graphs and package configurations for errors

TEN Manager handles the complexity of package dependencies and installations, allowing you to focus on building your applications rather than managing infrastructure.

info

tman is the command-line abbreviation for TEN Manager.

Set up TEN Manager

Follow these steps to install and run TEN Manager

  1. Open the TEN Framework releases page on GitHub.

  2. Find the TEN Manager package for your OS and architecture. The package uses the naming structure tman-[OS]-release-[ARCH].zip.

  3. Download the package. For example, you can download the Linux package for x64 using:


    _1
    wget https://github.com/TEN-framework/ten-framework/releases/download/0.10.10/tman-linux-release-x64.zip

  4. Extract the downloaded package:


    _1
    unzip tman-linux-release-x64.zip

  5. Install TEN Manager by copying the binary to your system PATH so that you can run tman commands from any directory (Optional):


    _1
    sudo cp ten_manager/bin/tman /usr/local/bin/

  6. Verify the installation:


    _1
    tman --version

Package management

TEN Manager provides the following package management commands.

Create packages

Use tman create to generate new apps, extensions, protocols, and other package types using predefined templates. The command sets up proper directory structure, creates manifest.json and property.json configuration files, and provides template code to get you started quickly.

Usage


_1
tman create [OPTIONS] --template <TEMPLATE> <PACKAGE_TYPE> <PACKAGE_NAME>

See supported Package types.

Examples


_8
# Create a new TEN application
_8
tman create app my_app --template default_app_python
_8
_8
# Create a new extension
_8
tman create extension my_extension --template default_extension_go
_8
_8
# Create a protocol package
_8
tman create protocol my_protocol --template custom_protocol

Fetch packages

Use tman fetch to download packages from the TEN Cloud Store registry. The command allows you to specify target directories and control extraction behavior.

Usage


_1
tman fetch [OPTIONS] <PACKAGE_TYPE> <PACKAGE_NAME>

See supported Package types.

Examples


_11
# Fetch and extract an extension package
_11
tman fetch extension speech_recognition
_11
_11
# Fetch a specific version of an app
_11
tman fetch app ai_agent@1.2.0
_11
_11
# Download package file only (no extraction) to specific directory
_11
tman fetch protocol websocket --output-dir ./downloads --no-extract
_11
_11
# Fetch system package for specific platform
_11
tman fetch system ten_runtime --os linux --arch x64

Uninstall packages

Use tman uninstall to remove packages from your TEN application. This removes the package files and cleans up the local package directory structure.

Usage


_1
tman uninstall <PACKAGE_TYPE> <PACKAGE_NAME>

See supported Package types.addon_loader`: Specialized loaders for different programming languages

Examples


_8
# Uninstall an extension package
_8
tman uninstall extension speech_recognition
_8
_8
# Remove a protocol package
_8
tman uninstall protocol websocket
_8
_8
# Uninstall a system component
_8
tman uninstall system ten_runtime

Package TEN components

Use tman package to create distributable package files from your TEN packages. Run this command from the base directory of the package you want to distribute.

Usage


_1
tman package [OPTIONS]

Examples


_10
# Create a package file from current directory
_10
cd my_extension
_10
tman package
_10
_10
# Create package file with custom output path
_10
tman package --output-path ./dist/my_extension.zip
_10
_10
# Package an app for distribution
_10
cd my_ten_app
_10
tman package --output-path ../releases/my_app_v1.0.zip

Publish packages

Use tman publish to publish your TEN packages to the TEN Cloud Store. Run this command from the base directory of the package you want to publish.

Usage


_1
tman publish

Examples


_11
# Publish an extension to the Cloud Store
_11
cd my_extension
_11
tman publish
_11
_11
# Publish an app package
_11
cd my_ten_app
_11
tman publish
_11
_11
# Publish a protocol package
_11
cd my_custom_protocol
_11
tman publish

Development tools

TEN Manager provides the following development tools.

TEN designer

Use tman designer to start the TEN Designer visual development environment. This opens a browser-based interface for creating, editing, and managing TEN applications and extensions. See Ten Designer for details.

Usage


_1
tman designer [OPTIONS]

Examples


_12
# Launch designer with default settings
_12
tman designer
_12
_12
# Launch on a specific port
_12
tman designer --port 8080
_12
_12
# Launch with custom IP and port
_12
tman designer --ip 127.0.0.1 --port 3000
_12
_12
# Launch from a specific app directory
_12
cd my_ten_app
_12
tman designer --base-dir .

Check consistency

Use tman check to validate various aspects of your TEN packages and configurations. This helps ensure your packages are properly configured before deployment.

Usage


_1
tman check <COMMAND>

The following commands are available:

  • manifest-json: Validate manifest.json files against JSON schema
  • property-json: Validate property.json files against JSON schema

Examples


_5
# Check manifest.json validity
_5
tman check manifest-json
_5
_5
# Check property.json validity
_5
tman check property-json

Modify framework components

Use tman modify to modify various components and configurations within the TEN framework. This allows you to update existing configurations without manually editing files.

Usage


_1
tman modify <COMMAND>

The following modify commands are available:

  • graph: Modify predefined graphs in property.json files

Run custom scripts

Use tman run to execute custom scripts defined in your package's manifest.json file. This allows you to run predefined build, start, test, or other custom commands for your TEN packages.

Usage


_1
tman run <SCRIPT_NAME> [-- <EXTRA_ARGS>]

Examples


_11
# Run the start script
_11
tman run start
_11
_11
# Run the build script
_11
tman run build
_11
_11
# Run a custom script with additional arguments
_11
tman run test -- --verbose
_11
_11
# Run stop script
_11
tman run stop

Reference

Package types

The following package types are supported:

  • app: Main application containers
  • extension: Functional components that implement specific features
  • protocol: Communication protocol handlers
  • system: Core framework components
  • addon_loader: Specialized loaders for different programming languages

Common options

TEN Manager supports the following global options:

  • --verbose - Enable detailed output for debugging
  • -y, --yes - Automatically confirm all prompts
  • -c, --config-file <CONFIG_FILE> - Specify custom configuration file
  • --user-token <USER_TOKEN> - Provide authentication token
  • -h, --help - Display help information

Get help

Use the following options with tman to get help:

  • help - Display help information for each command
  • --version - Show version information and check for updates