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…
Install / Use
npx skills add matlab/matlab-agentic-toolkit --skill matlab-configure-toml-projectInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Tags
Our assessment of matlab-configure-toml-project
matlab-configure-toml-project scores 93/100 on our quality scale, 819th of 4,598 Development & Engineering skills we index (top 18%).
Its SKILL.md is 12 KB long, well organised into 12 sections with 6 code examples: a thorough specification that gives an agent plenty to work with.
With 1,098 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 28 days ago, so matlab-configure-toml-project is actively maintained.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 88/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
matlab-configure-toml-project compared with similar skills
All 4 of these similar skills score higher than matlab-configure-toml-project; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| matlab-configure-toml-project (this skill)by matlab | 93 | 1.1k | 28d ago | SKILL.md |
| taste-skillby Leonxlnx | 100 | 95.7k | today | CLAUDE.md |
| ai-job-searchby MadsLorentzen | 100 | 46.7k | 5d ago | CLAUDE.md |
| claude-howtoby luongnv89 | 100 | 41.9k | 3d ago | CLAUDE.md |
| algorithmic-artby anthropics | 100 | 177.9k | 21d ago | SKILL.md |
Frequently asked questions
- How do I install matlab-configure-toml-project?
- Run
npx skills add matlab/matlab-agentic-toolkit --skill matlab-configure-toml-project. The install tabs above show the steps for each supported agent. - Which AI agents does matlab-configure-toml-project work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is matlab-configure-toml-project safe to use?
- It declares no license and scores 88/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is matlab-configure-toml-project still maintained?
- The repository was last updated 28 days ago, so matlab-configure-toml-project is actively maintained.
Skill content
View source on GitHubname: matlab-configure-toml-project description: | 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. license: https://www.mathworks.com/content/dam/mathworks/license/pmrl/license.md metadata: author: MathWorks version: "1.0"
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.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-managerfor MATLAB packages. - Use
matlab-package-toolboxto author and build.mltbxMATLAB 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.tomlfor 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.prjkeys or concepts over intomatlab.toml— the schemas are not equivalent. A reference project may still target a.prjproject. - 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
| Function | Purpose |
|----------|---------|
| openProject | Loads 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. |
| currentProject | Returns the currently open Project object; use its Name, PathFolders, TestFolders, StartupFiles, etc. properties to verify a round-trip after writing the file. |
| matlab.project.createProject | Creates 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:
-
Ask for the project name. This is the only required field.
-
Scan the current folder for existing structure:
- Find subfolders containing
.m,.mlx,.slx, or.mlappfiles. Propose these as[folders].pathentries. - Identify folders whose names contain "test" (e.g.,
tests/,test/,unitTests/). Propose these as[folders].testentries. - Look for scripts matching
*startup*or*setup*patterns — propose asstartup-files. - Look for scripts matching
*shutdown*or*cleanup*or*teardown*patterns — propose asshutdown-files. - Exclude hidden folders (
.git,.svn, etc.) and common output folders (derived/,results/,build/).
- Find subfolders containing
-
Generate a draft starting minimal — name, folders, and any discovered lifecycle scripts. Present it to the user.
-
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
.slxfiles are present)
-
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:
-
Read the existing
matlab.tomlto understand the current configuration. -
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.
-
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. -
Validate against the schema yourself.
openProjectdoes not report schema violations — unknown keys, missing files, and wrong value types all load silently and are simply ignored. A successfulopenProjectis 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.prjfiles. - Path keys must resolve. Most path values must point at files that exist and live inside the project root. Few paths (
startup-folder, dependencypath) 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, orhead-limited listing that fails to show it is not a confirmation, and neither is alsof a guessed name that returns nothing. - Required fields must be present:
idandpackage-rootin[[package]],namein[[compiler.standalone]],pathin project-path dependencies and shortcuts,versionin version-with-ID dependencies, and bothcategoryandlabelin every label filter.
-
Present the change — show the user what will be modified before writing the file.
Conventions
- Author the TOML directly. Do not produce
matlab.tomlby drivingmatlab.project.createProjectand 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.prjfile; check every key against @references/format-reference.md. openProjectis 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 anlsof 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
| Section | Purpose | Key Fields |
|---------|---------|------------|
| name | Project name (always set it) | string |
| [user] | Free-form custom data | any keys/nested tables |
| [folders] | MATLAB path and test folders | path, test (arrays) |
| [dependencies] | Declare MATLAB packages (not MathWorks products) or reference projects | packages: version string or {version, id}; references: {path, absolute} |
| [project] | Lifecycle and metadata | summary, startup-folder, startup-files, shutdown-files, custom-tasks |
| [project.dependency-analyzer] | Dependency analysis cache | cache-file |
| [project.shortcuts] | Named script shortcuts | {path, icon} per shortcut; can be grouped |
| [project.labels.Category] | File categorization | LabelName = ["file.m", "dir/"] |
| [[project.profile]] | Export/filter profiles | name, included-files, excluded-files, excluded-labels |
| [project.dashboards] | Dashboard label groupings | component, unit (label references) |
| [project.digital-thread] | Traceability settings | tool-output-tracking, ignore |
| [[package]] | Build a MATLAB package | id (required), package-root (required), name, version, summary, description, folders, apps, provider |
| [compiler.*] | Deployment build targets | 10 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 configuration | coverage-setting, test-suite |
| [simulink] | Simulink settings | start-simulink, cache-folder, codegen-folder, refresh-customizations |
| [simulink.process-advisor] | Process Advisor settings | incremental-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:
mytoolbox = "3.*"
Package dependency: version with ID — when the package ID is available:
motor = {version = "*", id = "9b9e5bc2-a583-4d79-98c5-d2b9af135697"}
Reference project — for a project at a filesystem path (absolute is optional and
defaults to relative):
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
Truncated for display — read the full file on GitHub.
Related Skills
taste-skill
95.7kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
ai-job-search
46.7kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
claude-howto
41.9kA visual, example-driven guide to Claude Code — from basic concepts to advanced agents, with copy-paste templates that bring immediate value.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
