new-modular-project
Creates a new Mojo or MAX project. Use when wanting to start a new Mojo or MAX project, initializing the Pixi or UV environment to use Mojo or MAX, or when the user wants to begin a new Mojo or MAX project from scratch.
Best use case
new-modular-project is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Creates a new Mojo or MAX project. Use when wanting to start a new Mojo or MAX project, initializing the Pixi or UV environment to use Mojo or MAX, or when the user wants to begin a new Mojo or MAX project from scratch.
Teams using new-modular-project should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/new-modular-project/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How new-modular-project Compares
| Feature / Agent | new-modular-project | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Creates a new Mojo or MAX project. Use when wanting to start a new Mojo or MAX project, initializing the Pixi or UV environment to use Mojo or MAX, or when the user wants to begin a new Mojo or MAX project from scratch.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
When the user wants to create a new project, first infer as many options as possible from the user's request (e.g., "new Mojo project" means type=Mojo, "called foo" means name=foo). Then use a structured multiple-choice prompt (not plain text) to gather only the **remaining unspecified** options in a single interaction. Do NOT ask about options the user has already provided or implied. The options to determine are: 1. **Project name** — ask if not specified 2. **Type of project** — Mojo or MAX (infer from context if the user said "Mojo project" or "MAX project") 3. **Environment manager** — Pixi (recommended) or uv 4. **If uv**: **UV project type** — full uv project (`uv init` + `uv add`, recommended) or quick uv environment (`uv venv` + `uv pip install`, lighter weight) 5. **Channel** — nightly (latest features, recommended) or stable (production) Then follow the appropriate section below (Pixi or uv) to initialize the project and choose `max` or `mojo` as appropriate. For stable versions in the below examples, `mojo` will start with a 0. prefix (0.26.1.0.0.0) where `max` packages will not (26.1.0.0.0). NOTE: Do not look for or use `magic` for Mojo or MAX projects, it is no longer supported. Pixi has fully replaced its capabilities. --- ## Pixi (Recommended) Pixi manages Python, Mojo, and other dependencies in a reproducible manner inside a controlled environment. First, determine if `pixi` is installed. If it is not available for use at the command line, install it using the latest instructions found on https://pixi.prefix.dev/latest/#installation You may need to place the `pixi` tool in the local shell environment after installation if it had not already been installed. ### Nightly ```bash # New project pixi init [PROJECT] \ -c https://conda.modular.com/max-nightly/ -c conda-forge \ && cd [PROJECT] pixi add [max / mojo] pixi shell # Existing project - add to pixi.toml channels first: # [workspace] # channels = ["https://conda.modular.com/max-nightly/", "conda-forge"] pixi add [max / mojo] ``` ### Stable (v26.1.0.0.0) ```bash # New project pixi init [PROJECT] \ -c https://conda.modular.com/max/ -c conda-forge \ && cd [PROJECT] pixi add "[max / mojo]==0.26.1.0.0.0" pixi shell # Existing project pixi add "[max / mojo]==0.26.1.0.0.0" ``` --- ## uv uv is a fast and very popular package manager, familiar to developers coming from a Python background. It also works well with Mojo projects. ### Nightly (project) ```bash uv init [PROJECT] && cd [PROJECT] uv add [max / mojo] \ --index https://whl.modular.com/nightly/simple/ \ --prerelease allow ``` ### Stable (project) ```bash uv init [PROJECT] && cd [PROJECT] uv add [max / mojo] \ --extra-index-url https://modular.gateway.scarf.sh/simple/ ``` ### Nightly (quick environment) ```bash mkdir [PROJECT] && cd [PROJECT] uv venv uv pip install [max / mojo] \ --index https://whl.modular.com/nightly/simple/ \ --prerelease allow ``` ### Stable (quick environment) ```bash mkdir [PROJECT] && cd [PROJECT] uv venv uv pip install [max / mojo] \ --extra-index-url https://modular.gateway.scarf.sh/simple/ ``` When using `uv`, you can use `max` or `mojo` directly by working within the project environment: ```bash source .venv/bin/activate ``` --- ## pip Standard Python package manager. ### Nightly ```bash python3 -m venv .venv && source .venv/bin/activate pip install --pre [max / mojo] \ --index https://whl.modular.com/nightly/simple/ ``` ### Stable ```bash python3 -m venv .venv && source .venv/bin/activate pip install [max / mojo] \ --extra-index-url https://modular.gateway.scarf.sh/simple/ ``` --- ## Conda For conda/mamba users. ### Nightly ```bash conda install -c conda-forge \ -c https://conda.modular.com/max-nightly/ [max / mojo] ``` ### Stable (v26.1.0.0.0) ```bash conda install -c conda-forge \ -c https://conda.modular.com/max/ "[max / mojo]==0.26.1.0.0.0" ``` --- ## Version Alignment with MAX If using MAX with custom Mojo kernels, versions must match: ```bash # Check alignment uv pip show mojo | grep Version # e.g., 0.26.2 pixi run mojo --version # Must match major.minor (e.g., 0.26.2) ``` Mismatched versions cause kernel compilation failures. Always use the same channel (stable or nightly) for both. --- ## References - [Mojo Installation Guide](https://docs.modular.com/mojo/manual/install) - [Mojo Stable Docs](https://docs.modular.com/stable/mojo/) - [Mojo Nightly Docs](https://docs.modular.com/mojo/)
Related Skills
golang-project-layout
Provides a guide for setting up Golang project layouts and workspaces. Use this whenever starting a new Go project, organizing an existing codebase, setting up a monorepo with multiple packages, creating CLI tools with multiple main packages, or deciding on directory structure. Apply this for any Go project initialization or restructuring work.
Goal: Build an LLM-based RAG App
Here is the MVP Implementation Plan.
You are a professional Landing page designer who is very friendly and supportive.
Your task is to guide a beginner through planning and designing a landing page or personal portfolio.
You are a professional Chief Marketing Officer. Your task is to help a user start and grow their social media presence organically through a series of questions and generate a growthplan.md blueprint.
Follow these instructions:
Convert this into a web based slide deck using reveal.js.
Use the following brand colour and logo.
technical-article-writer
Write compelling technical articles and blog posts for developer audiences. Use this skill whenever the user asks to write a blog post, technical article, or any long-form technical content. Also trigger when the user says 'write about [technical topic]', 'help me draft an article', 'turn this into a blog post', 'write a post about', 'I want to publish something about', or mentions writing for a developer audience. Covers the full pipeline: idea sharpening, hook/title generation, article structure, body drafting, and editing. Even if the user just says 'I want to write about X' without specifying format, use this skill. Do NOT use for platform-specific optimization, newsletter strategy, or ghostwriting voice matching.
substack-ghostwriting
Write, optimize, and grow Substack content — both newsletter issues (email-first) and web posts (web-first articles/essays). Covers ghostwriting with voice matching, Substack algorithm optimization, Notes strategy, email formatting, SEO, growth tactics, and monetization planning. Use when the user mentions Substack, newsletters, write a newsletter issue, Substack post, Substack article, web post on Substack, evergreen content, SEO for Substack, newsletter growth, Notes strategy, ghostwrite for, match someone's voice, write in the style of, newsletter monetization, paid subscribers, or any task involving Substack as a platform. Also trigger for general article/newsletter writing even if Substack isn't named explicitly, or when the user wants to adapt existing content (blog post, talk, thread) into newsletter or web post format. Do NOT use for generic blog post writing without a newsletter/Substack context (-> See samber/cc-skills@technical-article-writer skill).
press-release-writer
Write professional press releases for any occasion, media type, and country. Use when the user wants to write, draft, or improve a press release, communiqué de presse, media announcement, news release, or PR statement — including product launches, funding rounds, partnerships, crisis communications, earnings, executive hires, events, M&A, open source milestones, and media advisories. Covers all release types, media targets (print, digital/wire, broadcast, social/SMPR, trade press), and region-specific conventions (Western/Eastern Europe, Americas, Middle East, Africa, Asia, Oceania). Also trigger when the user says 'I need to announce something' or 'how do I tell the press about X.'
Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.
linkedin-ghostwriting
B2B LinkedIn ghostwriting — strategic interview, hook engineering, and post body. Use when the user wants to write LinkedIn content, create ghostwritten posts, ghostwrite for a founder or executive, develop a B2B social strategy, or needs hooks, post structures, or copywriting frameworks for LinkedIn. Apply when the user shares a story, result, or insight and wants it turned into a post.
docx
Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.
documentation
Creates, structures, and reviews technical documentation following the Diátaxis framework (tutorials, how-to guides, reference, and explanation pages). Use when a user needs to write or reorganize docs, structure a tutorial vs. a how-to guide, build reference docs or API documentation, create explanation pages, choose between Diátaxis documentation types, or improve existing documentation structure. Trigger terms include: documentation structure, Diátaxis, tutorials vs how-to guides, organize docs, user guide, reference docs, technical writing.