xojo-lint

Validate and conservatively format Xojo text-format project files.

8|Updated Aug 12, 2026
One-click install
npx skills add https://github.com/scannedinc/xojo-tools --skill xojo-lint-scannedinc
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: xojo-lint
Source: https://github.com/scannedinc/xojo-tools/tree/main/plugins/xojo/skills/xojo-lint
Command: npx skills add https://github.com/scannedinc/xojo-tools --skill xojo-lint-scannedinc

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve? Xojo projects saved in text format can silently break through malformed #tag regions, mismatched designer Begin/End blocks, duplicate manifest item IDs, or missing companion files, and the Xojo IDE only surfaces these problems late. This Skill catches broken .xojo_* files before the IDE sees them and repairs safe serialization details automatically. ## Core Features & Use Cases - Structural validation: The check command validates UTF-8 text containers, #tag and Begin/End structure, project manifest rows and item relationships, resource chunk boundaries, UI-state records, and library archives, reporting error, warning, and notice severities with editor-friendly path:line:column output. - Conservative formatting: The format command normalizes serializer tag case and nesting, repairs missing source indentation, removes whitespace around manifest keys, and adds missing final line breaks, without reordering properties or rewriting Xojo expressions, identifiers, comments, or string literals. - Pre-commit integration: A ready-to-use git hook lints staged .xojo_* files and blocks commits on errors, warnings, or files the formatter would change. - Use Case: After an agent edits a .xojo_window file, run check --all and format --check on the project to confirm the serialization is intact before opening it in the Xojo IDE. ## Quick Start Ask the agent to lint and format-check your Xojo project, for example: run xojo-lint check and format --check on this Xojo project and fix anything it reports.

Frequently Asked Questions about xojo-lint

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I validate Xojo project files from the command line?

Run python3 scripts/xojo_lint.py check --all followed by the project path to validate every .xojo_* file. The command is silent and exits 0 when the project is clean, and prints path:line:column diagnostics otherwise.

How do I format Xojo text project files safely?

Run python3 scripts/xojo_lint.py format --check to preview which files would change, then format --diff to inspect changes and format to apply them. The formatter only fixes serialization details like tag case, indentation, and final line breaks, never Xojo code itself.

Can I use xojo-lint as a git pre-commit hook?

Yes, copy scripts/pre-commit.sample to .git/hooks/pre-commit and make it executable. The hook lints the staged .xojo_* files and blocks the commit on errors, warnings, or files the formatter would change.

Does xojo-lint support Xojo Binary Project or XML project files?

No, Xojo Binary Project and Xojo XML Project files are opaque to the tool and are skipped. They are only named in output when you pass --warn-unknown.

What happens when a newer Xojo IDE adds unknown properties or tags?

Unknown properties, keys, and tag kinds are accepted for forward compatibility, so a newer IDE can extend the formats without the tool reporting corruption. A project version newer than the tool's knowledge produces a warning, not a failure.

What dependencies does xojo-lint require?

It needs only Python 3.9 or later and the standard library. There are no third-party packages to install.