Quick Start¶
This guide takes you from zero to "I installed a package!" in about 5 minutes. You'll create a local registry, build a minimal package, publish it, and install it in another directory.
No server, no Docker, no database required — just AAM and a filesystem.
What You'll Build¶
By the end of this quick start, you'll have:
- ✅ AAM installed and configured
- ✅ A local file-based registry
- ✅ A working package with a skill
- ✅ The package published to your registry
- ✅ The package installed and deployed to Cursor
Time: 5 minutes
Step 1: Install AAM¶
If you haven't already, install AAM:
Verify the installation:
Expected output:
Step 2: Create a Local Registry¶
A registry is where packages are stored and discovered. Create a local file-based registry:
Expected output:
Register it with AAM and make it the default:
Expected output:
Verify the registry:
Expected output:
What just happened?
You created a directory with a specific structure that AAM uses to store packages. No server, no database — just files. You can share this directory via Git, NFS, or cloud sync.
Step 3: Create a Minimal Package¶
Create a new directory for your first package:
Client vs package setup
In a directory where you only consume packages (e.g. a project that uses aam install), run aam init to set up the client (config, lock file). Here we're creating a new package, so we use aam pkg init.
Initialize a new package interactively:
Follow the prompts:
Package name [code-reviewer]: code-reviewer
Version [1.0.0]:
Description: A simple code review skill for Python
Author: Your Name
License [MIT]:
What artifacts will this package contain?
[x] Skills
[ ] Agents
[ ] Prompts
[ ] Instructions
Which platforms should this package support?
[x] Cursor
[x] Claude
[ ] GitHub Copilot
[ ] Codex
Expected output:
Step 4: Create a Simple Skill¶
Create the skill directory and main file:
Create the skill definition file skills/python-reviewer/SKILL.md:
---
name: python-reviewer
description: Review Python code for common issues and best practices
---
# Python Code Reviewer
## When to Use
Use this skill when asked to review Python code.
## Review Checklist
1. **Code Style**
- PEP 8 compliance
- Consistent naming conventions
- Proper indentation (4 spaces)
2. **Type Hints**
- Function parameters and return types
- Variable annotations where helpful
3. **Documentation**
- Module docstrings
- Function/method docstrings
- Complex logic comments
4. **Error Handling**
- Specific exception types (avoid bare `except:`)
- Proper resource cleanup
- Meaningful error messages
## Output Format
Provide structured feedback:
```markdown
## Code Review: [filename]
### Issues Found
- **Line X**: [issue description]
### Suggestions
- **Line Y**: [improvement suggestion]
### Positive Aspects
- [what's done well]
Update the `aam.yaml` manifest to include the skill:
```yaml title="aam.yaml"
name: code-reviewer
version: 1.0.0
description: "A simple code review skill for Python"
author: Your Name
license: Apache-2.0
artifacts:
skills:
- name: python-reviewer
path: skills/python-reviewer/
description: "Review Python code for common issues and best practices"
dependencies: {}
platforms:
cursor:
skill_scope: project
claude:
merge_instructions: false
Step 5: Validate and Pack¶
Validate your package structure:
Expected output:
Validating code-reviewer@1.0.0...
Manifest:
✓ name: valid format
✓ version: valid semver (1.0.0)
✓ description: present
✓ author: present
Artifacts:
✓ skill: python-reviewer
✓ SKILL.md exists and valid
✓ Package is valid and ready to publish
Build the package archive:
Expected output:
Building code-reviewer@1.0.0...
Adding aam.yaml
Adding skills/python-reviewer/SKILL.md
✓ Built code-reviewer-1.0.0.aam (2.1 KB)
Checksum: sha256:a1b2c3d4e5f6...
What is a .aam file?
A .aam file is a gzipped tar archive containing your package. It's like a .tar.gz file with a specific structure that AAM recognizes.
Step 6: Publish to Local Registry¶
Publish your package to the local registry:
Expected output:
Publishing code-reviewer@1.0.0 to registry 'local'...
Uploading code-reviewer-1.0.0.aam...
████████████████████████████████ 100%
✓ Published code-reviewer@1.0.0
Registry: local (file:///home/user/my-packages)
⚠ Package is unsigned. Consider signing with --sign for better security.
Verify the package is in the registry:
Expected output:
Search results for "code-reviewer" (1 match)
Name Version Type Source Description
code-reviewer 1.0.0 skill local A simple code review skill for Python
You published a package!
Your package is now in the registry and can be installed by anyone with access to ~/my-packages.
Step 7: Install the Package¶
Navigate to a different directory (simulating another project):
Configure the platform (if not already done):
Install your package:
Expected output:
Resolving code-reviewer@1.0.0...
+ code-reviewer@1.0.0
Downloading 1 package...
✓ code-reviewer@1.0.0 (2.1 KB)
Verification:
✓ Checksum: sha256:a1b2c3d4... matches
Deploying to cursor...
→ skill: python-reviewer → .cursor/skills/python-reviewer/
✓ Installed 1 package (1 skill)
Step 8: Verify Deployment¶
Check that the skill was deployed correctly:
Expected output:
total 8
drwxr-xr-x 2 user user 4096 Feb 9 10:30 .
drwxr-xr-x 3 user user 4096 Feb 9 10:30 ..
-rw-r--r-- 1 user user 912 Feb 9 10:30 SKILL.md
View the deployed skill:
List installed packages:
Expected output:
Get detailed info:
Expected output:
code-reviewer@1.0.0
Description: A simple code review skill for Python
Author: Your Name
License: MIT
Artifacts:
skill: python-reviewer — Review Python code for common issues
Dependencies: none
Deployed to:
cursor: .cursor/skills/python-reviewer/
It works!
Your AI agent in Cursor can now discover and use the python-reviewer skill. Try asking it to "review this Python file using the python-reviewer skill".
What Just Happened?¶
Here's a recap of the workflow:
flowchart LR
Create["1️⃣ Create Package<br/>(aam pkg init)"] --> Validate["2️⃣ Validate<br/>(aam pkg validate)"]
Validate --> Pack["3️⃣ Pack<br/>(aam pkg pack)"]
Pack --> Publish["4️⃣ Publish<br/>(aam pkg publish)"]
Publish --> Registry["📦 Registry<br/>(~/my-packages)"]
Registry --> Install["5️⃣ Install<br/>(aam install)"]
Install --> Deploy["6️⃣ Deploy<br/>(.cursor/skills/)"]
style Create fill:#e3f2fd
style Registry fill:#f3e5f5
style Deploy fill:#e8f5e9 - Created a package — Defined a package with
aam.yamland a skill artifact (aam pkg init) - Validated — Checked that the package structure is correct (
aam pkg validate) - Packed — Built a distributable
.aamarchive (aam pkg pack) - Published — Uploaded to a local file-based registry (
aam pkg publish) - Installed — Downloaded and resolved dependencies (none in this case)
- Deployed — Placed files in
.cursor/skills/for Cursor to discover
All of this happened locally without any server or network access.
Next Steps¶
You've completed the quick start! Here's where to go from here:
Learn More¶
- Your First Package — Create a complete package with all 4 artifact types (skills, agents, prompts, instructions)
- Package Existing Skills — Wrap your existing skills and agents into AAM packages
- Multi-Platform Deployment — Deploy the same package to Cursor, Claude, Copilot, and Codex
Explore Advanced Features¶
- Keeping packages up to date — Use
aam outdatedto list packages with newer versions andaam upgradeto upgrade them - Dependencies — Learn how to declare and resolve dependencies between packages
- Dist-Tags — Use named aliases like
stableorbetafor versions - Package Signing — Sign packages with Sigstore or GPG for authenticity
- aam pack — Create self-contained .aam archives for sharing
Build Something Useful¶
Try creating packages for:
- Security scanning skill — A skill that checks for common vulnerabilities
- Code generation agent — An agent specialized in generating boilerplate code
- Refactoring prompts — Prompt templates for common refactoring tasks
- Team coding standards — Instructions with your team's conventions
Share Your Packages
Once you've created useful packages, consider publishing them to a shared registry so others can benefit. You can use a Git repository as a registry or set up an HTTP registry server for your team.
Troubleshooting¶
Package Not Found After Publishing¶
If aam search doesn't find your package:
# Verify the registry is configured
aam registry list
# Check the registry directory
ls -la ~/my-packages/
# Make sure you're searching the right registry
aam search code-reviewer --registry local
Skill Not Appearing in Cursor¶
If the skill doesn't show up in Cursor:
-
Check the deployment location:
-
Verify the platform is set correctly:
-
Restart Cursor to refresh skill discovery
Permission Errors¶
If you get permission errors during install:
# Check directory permissions
ls -la .cursor/
# Create the directory if it doesn't exist
mkdir -p .cursor/skills/
Summary¶
In just 5 minutes, you:
- ✅ Created a local registry (no server needed)
- ✅ Built a package with a Python review skill
- ✅ Published it to your local registry
- ✅ Installed it in another directory
- ✅ Verified deployment to Cursor
You now understand the core AAM workflow: create → validate → pack → publish → install → deploy. To check for newer versions of installed packages, use aam outdated; to upgrade them, use aam upgrade.
Ready to build something more complex? Continue to Your First Package for an extended tutorial with all artifact types.