Matlab Configure Toml Project logo

Matlab Configure Toml Project

OrganizationPopular
matlab
matlab-configure-toml-project

Use whenever "project" or "matlab.toml" is mentioned in a MATLAB context. This includes creating, editing, organizing, or configuring MATLAB projects, declaring MATLAB package dependencies or reference projects, setting up paths, lifecycle scripts, shortcuts, MATLAB packages, or asking about project structure.

Overview

Publishermatlab
Repositorymatlab-agentic-toolkit
Skill namematlab-configure-toml-project
Stars
1.2K
Forks
138
Bundled files
3
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 3 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by matlab on GitHub. Read the source before you install it.

Installation

Install the Matlab Configure Toml Project AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/matlab/matlab-agentic-toolkit/tree/main/skills-catalog/matlab-software-development/matlab-configure-toml-project
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/matlab/matlab-agentic-toolkit.git /tmp/matlab-agentic-toolkit
mkdir -p .claude/skills
cp -r /tmp/matlab-agentic-toolkit/skills-catalog/matlab-software-development/matlab-configure-toml-project .claude/skills/matlab-configure-toml-project
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Matlab Configure Toml Project in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Matlab Configure Toml Project on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Matlab Configure Toml Project is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

matlab.toml Projects

matlab.toml is a TOML-based configuration file for MATLAB projects. It defines project structure, dependencies, lifecycle scripts, shortcuts, labels, packaging, deployment, and Simulink settings. Every section is optional — the schema mandates no top-level field — but always set name, which supplies the project's display name.

matlab.toml must be placed at the project root folder — the same folder that would contain a .git/ folder or be the top-level working folder for the project.

For MATLAB R2026b and later, prefer matlab.toml for new projects. Existing .prj projects remain supported and can be converted in either direction with:

matlab
matlab.project.convertDefinitionFiles(pwd, "Toml")

Opening a project with openProject, buildtool, or runtests activates its configuration. The project's [folders].path entries then control the MATLAB path, so do not spread addpath calls through source and test files.

  • Use matlab-use-package-manager for MATLAB packages.
  • Use matlab-package-toolbox to author and build .mltbx MATLAB packages.
  • @references/format-reference.md — complete field documentation with examples, plus the validation rules that govern the whole file
  • @references/deployment-reference.md — the [compiler] deployment targets

When to Use

  • The user mentions matlab.toml, or "project" in a MATLAB context (creating, editing, or inspecting a MATLAB project's configuration).
  • Setting up MATLAB path folders, test folders, lifecycle scripts, shortcuts, package dependencies, reference projects, file labels, export profiles, MATLAB package metadata, deployment targets, or Simulink project settings.
  • Auditing an existing matlab.toml for schema violations before they cause silent failures.

When NOT to Use

  • The user wants to drive project state through the MATLAB object API directly (matlab.project.createProject, proj.addPath, etc.) rather than author or edit the file — that is a legitimate but different task; this skill's workflows assume the file is the artifact being produced.
  • The task is editing a .prj-format project definition. Do not carry .prj keys or concepts over into matlab.toml — the schemas are not equivalent. A reference project may still target a .prj project.
  • The task only concerns [compiler.*] deployment target internals in depth — read @references/deployment-reference.md directly rather than following the Creation/Editing workflows below, which are file-level, not per-target.

Key Functions

FunctionPurpose
openProjectLoads a matlab.toml (or .prj) as the current project. Does not validate the schema — unrecognized keys, missing files, and wrong types all load silently. Use it to confirm the file parses, never as a correctness check.
currentProjectReturns the currently open Project object; use its Name, PathFolders, TestFolders, StartupFiles, etc. properties to verify a round-trip after writing the file.
matlab.project.createProjectCreates a new project through the imperative API instead of authoring the file. Avoid this as the mechanism for producing matlab.toml — write the TOML directly (see Creation Workflow, step 3).

Creation Workflow

When a user wants to create a new matlab.toml (no existing file), follow this scan-first approach:

  1. Ask for the project name. This is the only required field.

  2. Scan the current folder for existing structure:

    • Find subfolders containing .m, .mlx, .slx, or .mlapp files. Propose these as [folders].path entries.
    • Identify folders whose names contain "test" (e.g., tests/, test/, unitTests/). Propose these as [folders].test entries.
    • Look for scripts matching *startup* or *setup* patterns — propose as startup-files.
    • Look for scripts matching *shutdown* or *cleanup* or *teardown* patterns — propose as shutdown-files.
    • Exclude hidden folders (.git, .svn, etc.) and common output folders (derived/, results/, build/).
  3. Generate a draft starting minimal — name, folders, and any discovered lifecycle scripts. Present it to the user.

  4. Ask about optional sections as needed, not as a checklist:

    • MATLAB packages (not MathWorks products) and reference projects
    • Shortcuts to frequently-used scripts
    • File labels and export profiles (only if used in code or explicitly requested)
    • MATLAB package metadata ([[package]]) if the project ships as an .mltbx
    • Deployment targets ([compiler.*]) if the project builds a standalone app, library, or language package
    • Simulink settings (if .slx files are present)
  5. After generating the TOML file, ask the user if they want the folders listed in [folders] to be created on disk (for nonexistent folders in new projects).

Start minimal and let the user add sections incrementally. One focused question at a time is better than a long questionnaire.

Editing Workflow

When a matlab.toml already exists and the user wants to modify it:

  1. Read the existing matlab.toml to understand the current configuration.

  2. Map the user's request to schema sections. Identify which section(s) need changes — refer to @references/format-reference.md for valid fields and formats.

  3. Make targeted edits. Modify only the sections the user asked about. Do not restructure, reformat, or reorder untouched sections. Preserve any user comments (# lines) in the file.

  4. Validate against the schema yourself. openProject does not report schema violations — unknown keys, missing files, and wrong value types all load silently and are simply ignored. A successful openProject is not evidence the file is correct, so check every key against @references/format-reference.md rather than relying on MATLAB errors and warnings:

    • Dependency values must use one of the three supported formats (package version string, package version with ID, or reference-project path).
    • Array-of-tables ([[project.profile]], [[package]], [[matlab.test.test-suite]], [[compiler.*]]) syntax must be correct.
    • No unknown keys. Every table except [user] is closed. Do not invent keys or carry over keys from .prj files.
    • Path keys must resolve. Most path values must point at files that exist and live inside the project root. Few paths (startup-folder, dependency path) can be outside the project root. Output paths (cache folders, build output) do not need to exist. The reference annotates each key. Confirming a path means listing the folder and seeing the entry — a truncated, filtered, or head-limited listing that fails to show it is not a confirmation, and neither is a ls of a guessed name that returns nothing.
    • Required fields must be present: id and package-root in [[package]], name in [[compiler.standalone]], path in project-path dependencies and shortcuts, version in version-with-ID dependencies, and both category and label in every label filter.
  5. Present the change — show the user what will be modified before writing the file.

Conventions

  • Author the TOML directly. Do not produce matlab.toml by driving matlab.project.createProject and reading back what MATLAB wrote — write the file yourself, with the sections in the order given above.
  • Tables are closed. Every table except [user] rejects unrecognized keys. Never invent a key or carry one over from a .prj file; check every key against @references/format-reference.md.
  • openProject is not a validator. A file that opens cleanly may still contain silently-ignored schema violations — the only way to be sure a key is correct is to look it up.
  • Path values must be confirmed, not guessed. Listing a folder and seeing the entry is a confirmation; a truncated, filtered, or head-limited listing that fails to show it is not, and neither is an ls of a guessed name that returns nothing.
  • MathWorks products are never [dependencies] entries. [dependencies] accepts any key, so a product name loads silently and wrongly. Record product requirements elsewhere (e.g. [project].summary, [[package]].product-dependencies, or a comment).
  • Preserve what the user didn't ask you to touch. Comments and section order in an existing file survive an edit unless the user's request required changing them.

Quick Reference

SectionPurposeKey Fields
nameProject name (always set it)string
[user]Free-form custom dataany keys/nested tables
[folders]MATLAB path and test folderspath, test (arrays)
[dependencies]Declare MATLAB packages (not MathWorks products) or reference projectspackages: version string or {version, id}; references: {path, absolute}
[project]Lifecycle and metadatasummary, startup-folder, startup-files, shutdown-files, custom-tasks
[project.dependency-analyzer]Dependency analysis cachecache-file
[project.shortcuts]Named script shortcuts{path, icon} per shortcut; can be grouped
[project.labels.Category]File categorizationLabelName = ["file.m", "dir/"]
[[project.profile]]Export/filter profilesname, included-files, excluded-files, excluded-labels
[project.dashboards]Dashboard label groupingscomponent, unit (label references)
[project.digital-thread]Traceability settingstool-output-tracking, ignore
[[package]]Build a MATLAB packageid (required), package-root (required), name, version, summary, description, folders, apps, provider
[compiler.*]Deployment build targets10 targets: standalone (name required), web-app, excel-add-in, dot-net-assembly, c-shared-library, cpp-shared-library, production-server-archive, com-component, java-package, python-package — see @references/deployment-reference.md
[matlab.test]Test runner configurationcoverage-setting, test-suite
[simulink]Simulink settingsstart-simulink, cache-folder, codegen-folder, refresh-customizations
[simulink.process-advisor]Process Advisor settingsincremental-build, enable-model-caching, 9 more string properties

[[package]] can include MATLAB code, Simulink models, apps, documentation, and other project content in the resulting MATLAB package. Use matlab-package-toolbox for the authoring and build workflow, or matlab-use-package-manager to install a completed package.

Package Dependencies and Reference Projects

Each key under [dependencies] names either a MATLAB package or a reference project. MathWorks products are not packages and must not be listed here.

Package dependency: version string — for a MATLAB package:

toml
mytoolbox = "3.*"

Package dependency: version with ID — when the package ID is available:

toml
motor = {version = "*", id = "9b9e5bc2-a583-4d79-98c5-d2b9af135697"}

Reference project — for a project at a filesystem path (absolute is optional and defaults to relative):

toml
shared-utils = {path = "../shared_utils_lib"}

The referenced project can use either a legacy .prj definition or a matlab.toml definition. The key is a display label chosen by the user and is unrelated to the folder on disk. Confirm path by listing the candidate parent folder — never derive it from the dependency name or from the other project's name.

Examples

Minimal

toml
name = "My Project"

Typical

toml
name = "Signal Analyzer"

[folders]
path = [
    "src",
    "utilities",
]
test = [
    "tests",
]

[dependencies]
signal-processing = "2.*"

[project]
startup-files = [
    "setup/initialize.m",
]

[project.shortcuts]
"Run Analysis" = {path = "scripts/analyze.m"}

Copyright 2026 The MathWorks, Inc.


Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Matlab Configure Toml Project AI skill do?

Use whenever "project" or "matlab.toml" is mentioned in a MATLAB context. This includes creating, editing, organizing, or configuring MATLAB projects, declaring MATLAB package dependencies or reference projects, setting up paths, lifecycle scripts, shortcuts, MATLAB packages, or asking about project structure.

Why use Matlab Configure Toml Project on TypingMind?

Because you install it once and use it with any model. Matlab Configure Toml Project is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Matlab Configure Toml Project in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/matlab/matlab-agentic-toolkit/tree/main/skills-catalog/matlab-software-development/matlab-configure-toml-project. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Matlab Configure Toml Project?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Matlab Configure Toml Project?

As many as you like. As long as a model supports skills, you can use Matlab Configure Toml Project with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Matlab Configure Toml Project AI skill free?

It is published on GitHub by matlab. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇