diff --git a/docs/base-app/agents/getting-started.mdx b/docs/base-app/agents/getting-started.mdx
index c6730c06..9d864e25 100644
--- a/docs/base-app/agents/getting-started.mdx
+++ b/docs/base-app/agents/getting-started.mdx
@@ -10,42 +10,66 @@ Build powerful chat agents that integrate seamlessly with Base App using the XMT
For the complete guide, visit [XMTP documentation](https://docs.xmtp.org/agents/get-started/build-an-agent)
-## Installation
+## Step 1: Set up your workspace
-
+Clone the XMTP agent examples repository to get started quickly with all dependencies and tooling:
-```bash npm
-npm install @xmtp/agent-sdk
+```bash
+git clone https://github.com/ephemeraHQ/xmtp-agent-examples.git
+cd xmtp-agent-examples
+npm install
```
-```bash pnpm
-pnpm add @xmtp/agent-sdk
+This installs `@xmtp/agent-sdk` and all required dependencies.
+
+## Step 2: Generate your agent keys
+
+Generate wallet keys and environment variables for your agent:
+
+```bash
+npm run gen:keys
```
-```bash yarn
-yarn add @xmtp/agent-sdk
+This creates a `.env` file in your project root with:
+
+```bash
+XMTP_WALLET_KEY=0x... # Your agent's private key (auto-generated)
+XMTP_DB_ENCRYPTION_KEY=... # Encryption key for local database (auto-generated)
+XMTP_ENV=dev # Environment (use 'dev' for testing, 'production' for Base App)
```
-
+
+The keys are automatically generated - you don't need to fill these values manually!
+
+
+## Step 3: Create your agent file
+
+In the project root, create an `index.ts` file for your agent code:
-## Usage
+```bash
+touch index.ts
+```
-This example shows how to create an agent that sends a message when it receives a text message.
+## Step 4: Write your agent code
-```ts [Node]
+Add the following code to `index.ts`:
+
+```ts
+// Import dotenv to load environment variables from .env file
+import "dotenv/config";
import { Agent } from '@xmtp/agent-sdk';
-// 2. Spin up the agent
+// Spin up the agent
const agent = await Agent.createFromEnv({
env: 'production', // base app works only on production
});
-// 3. Respond to text messages
+// Respond to text messages
agent.on('text', async (ctx) => {
await ctx.sendText('Hello from my Base App Agent! 👋');
});
-// 4. Log when we're ready
+// Log when we're ready
agent.on('start', () => {
console.log(`Waiting for messages...`);
console.log(`Address: ${agent.address}`);
@@ -54,15 +78,39 @@ agent.on('start', () => {
await agent.start();
```
-### Set environment variables
+
+The `import "dotenv/config"` line is **required** to load your `.env` file. Without it, you'll get an error about XMTP_WALLET_KEY format.
+
+
+## Step 5: Run your agent
-To run an example XMTP agent, you must create a `.env` file with the following variables:
+Start your agent locally:
```bash
-XMTP_WALLET_KEY= # the private key of the wallet
-XMTP_DB_ENCRYPTION_KEY= # encryption key for the local database
-XMTP_ENV=production # local, dev, production
+npx tsx --watch index.ts
+```
+
+You'll see output like:
+
```
+Waiting for messages...
+Agent address: 0x4a86dfa0ad31801256dd5f8bdf95b3ea5bbe2ba9
+```
+
+## Step 6: Test your agent
+
+Test your agent on xmtp.chat:
+
+1. **Copy your agent address** from the terminal output
+2. **Go to** [xmtp.chat](https://xmtp.chat)
+3. **Connect your wallet** (MetaMask, Coinbase Wallet, etc.)
+4. **Switch to Dev environment** in settings (gear icon, top right)
+5. **Create a new dm** with your agent's address
+6. **Send a message** - your agent should respond with "Hello from my Base App Agent! 👋"
+
+
+Make sure the environment in xmtp.chat matches your agent's `env` setting. Use Dev mode for `env: "dev"` and Production mode for `env: "production"` (Base App).
+
## Get a basename for your agent