skills/milady-ai/milady/milady-development

milady-development

Installation
SKILL.md

Milady Development Skill

You are a self-modifying agent. You can edit your own code through plugins, rebuild, and restart yourself. All agent capabilities live in plugins - this is where you make changes.

Important: Do NOT modify eliza core (~/.milady/eliza). The core runtime is stable infrastructure. All customization happens through plugins.

Directory Structure

~/.milady/
├── eliza/                     # elizaOS core (DO NOT MODIFY)
├── plugins/                   # Plugins - EDIT HERE
│   ├── plugin-discord/
│   ├── plugin-telegram/
│   ├── plugin-agent-helpers/
│   └── ...
└── skills/                    # Skills like this one

Plugin Architecture

Everything is a plugin. Want to add a new capability? Create or modify a plugin.

Plugin Structure

plugin-name/
├── typescript/
│   ├── src/
│   │   ├── index.ts       # Plugin entry point
│   │   ├── actions/       # Actions the agent can take
│   │   ├── providers/     # Context providers for LLM
│   │   └── services/      # Background services
│   ├── package.json
│   └── tsconfig.json

Key Plugin Concepts

  • Actions: Things you can do (RESTART_AGENT, SEND_MESSAGE, etc.)
  • Providers: Context injected into your prompts
  • Evaluators: Run after actions to assess results
  • Services: Background processes

Editing Plugins

Edit Local Plugins

Plugins at ~/.milady/plugins/ are editable:

# List available plugins
ls ~/.milady/plugins/

# Read a plugin's entry point
cat ~/.milady/plugins/plugin-discord/typescript/src/index.ts

Eject a Registry Plugin

For plugins from the registry, eject them first:

Tell yourself: "Eject plugin-twitter so I can modify it"

This clones the plugin to ~/.milady/plugins/ for local editing.

Create a New Plugin

mkdir -p ~/.milady/plugins/plugin-my-feature/typescript/src/actions

Making Changes

  1. Identify the plugin that handles what you want to change
  2. Read the plugin's index.ts to understand exports
  3. Edit the relevant file (action, provider, service)
  4. Restart to load changes

Example - adding a new action:

// ~/.milady/plugins/plugin-my-feature/typescript/src/actions/my-action.ts
import type { Action } from "@elizaos/core";

export const myAction: Action = {
  name: "MY_ACTION",
  similes: ["DO_MY_THING"],
  description: "Does something useful",
  validate: async () => true,
  handler: async (runtime, message, state) => {
    return { text: "Done!", success: true };
  },
};

Then export it from index.ts:

import type { Plugin } from "@elizaos/core";
import { myAction } from "./actions/my-action";

export const myFeaturePlugin: Plugin = {
  name: "plugin-my-feature",
  description: "My custom feature",
  actions: [myAction],
};

export default myFeaturePlugin;

Restarting the Runtime

After making changes, restart to load them.

Method 1: RESTART_AGENT Action (Preferred)

Tell yourself: "Restart to apply changes"

Method 2: API Endpoint

curl -X POST http://localhost:3000/api/agent/restart

Plugin Management

You have the plugin-plugin-manager plugin:

  • Install: "Install @elizaos/plugin-twitter"
  • Search: "Search for blockchain plugins"
  • Eject: "Eject plugin-discord so I can modify it"
  • Sync: "Sync plugin-discord with upstream"
  • Reinject: "Reinject plugin-discord" (discard changes)
  • List: "List my ejected plugins"

Upgrading Plugins

cd ~/.milady/plugins
git fetch origin next
git merge --no-edit origin/next
bun install

Or use the setup script:

bun run setup:upstreams

Self-Modification Workflow

  1. Check if a plugin exists that does something similar
  2. Decide: modify existing or create new
  3. Make your changes using Edit/Write tools
  4. Restart to apply: "Restart to apply my changes"
  5. Test the new functionality
  6. Iterate if needed

Important Paths

What Path
Plugins ~/.milady/plugins/
Skills ~/.milady/skills/
Eliza Core (read-only) ~/.milady/eliza/

Shell Commands

# List plugins
ls ~/.milady/plugins/

# Update plugins
cd ~/.milady/plugins && git pull origin next && bun install

# Check upstream changes
cd ~/.milady/plugins && git fetch origin next && git rev-list --count HEAD..origin/next
Weekly Installs
2
GitHub Stars
393
First Seen
Apr 8, 2026