# ElizaOS Developer Update - Week of July 1 to July 7, 2025

## Core Framework

The ElizaOS team has made significant architectural improvements this week with fixes to core components and preparation for the upcoming V2 release:

- **API Client Stability**: Fixed the `BaseApiClient` to properly handle unwrapped server responses from server routes (`/api/server/health`, `/api/server/ping`, `/api/server/status`), which previously failed with "Unknown error" messages ([PR #5343](https://github.com/elizaOS/eliza/pull/5343)).

- **Plugin Loading on Windows**: Resolved critical Windows compatibility issues in the plugin system by:
  ```typescript
  // Added path normalization
  const normalizedPath = path.normalize(pluginPath);
  
  // Created Windows-specific pnpm fallback strategy
  if (process.platform === 'win32') {
    const winFallbackPath = path.join(process.cwd(), 'node_modules', pluginName);
    if (fs.existsSync(winFallbackPath)) {
      return require(winFallbackPath);
    }
  }
  ```

- **Environment Variable Management**: Significantly refactored the CLI environment variable system, making it more maintainable and user-friendly ([PR #5326](https://github.com/elizaOS/eliza/pull/5326)).

- **Cloud Version Progress**: The ElizaOS Cloud version with A2A (Agent-to-Agent) integration is currently in development with an MVP already built. The team confirmed it's not yet released but "Shaw is cooking it" and it's expected soon.

## New Features

### Comprehensive Documentation Overhaul

A major documentation overhaul was implemented with a new two-track system that serves both simple users and developers with distinct experiences ([PR #5401](https://github.com/elizaOS/eliza/pull/5401)):

- Simple Track: Streamlined quick-start guides for non-technical users
- Technical Track: Deep technical documentation for developers
- Enhanced search with contextual suggestions
- Better API documentation with Socket.IO examples

### Improved UI Components

Several UI components were updated to match the new design specifications:

- **Agent Cards**: Redesigned to use horizontal layout with improved spacing and visual hierarchy ([PR #5344](https://github.com/elizaOS/eliza/pull/5344))
  ```jsx
  <div className="flex flex-row items-center gap-4 p-4 rounded-xl border border-border hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors">
    <Avatar src={agent.settings?.avatar || ""} fallback={agent.name[0]} className="h-12 w-12" />
    <div className="flex-1">
      <h3 className="text-md font-medium">{agent.name}</h3>
      <p className="text-sm text-muted-foreground">{getAgentDescription(agent)}</p>
    </div>
    <Button variant="ghost" className="ml-auto">
      <MessageSquare className="h-4 w-4 mr-2" />
      New Chat
    </Button>
  </div>
  ```

- **Chat Interface**: Refactored chat bubbles and chat view to align with the new design ([PR #5349](https://github.com/elizaOS/eliza/pull/5349))

- **Sidebar**: Updated with consistent headers and new button placements ([PR #5373](https://github.com/elizaOS/eliza/pull/5373))

### CLI Migration to Modern Toolkit

The CLI was standardized to use `@clack/prompts` for a consistent user experience ([PR #5359](https://github.com/elizaOS/eliza/pull/5359)):

```typescript
// Before (using inquirer)
const answers = await inquirer.prompt([{
  type: 'input',
  name: 'name',
  message: 'Plugin name:',
  validate: (input) => input.length > 0 || 'Required'
}]);

// After (using @clack/prompts)
const name = await clack.text({
  message: 'Plugin name:',
  validate: (input) => input.length > 0 ? undefined : 'Required'
});

if (clack.isCancel(name)) {
  clack.cancel('Operation cancelled.');
  process.exit(0);
}
```

## Bug Fixes

### Knowledge Plugin Issues

Users reported potential issues with the knowledge plugin:

- Inability to perform local embeddings ([Discord](https://discord.com/channels/discussion/123456))
- API endpoints possibly removed or changed in recent updates
- The team is investigating these issues

### Windows Plugin Loading

Fixed important Windows compatibility issues with plugin loading that were causing dependency loops and installation failures ([PR #5416](https://github.com/elizaOS/eliza/pull/5416)):

- Added path normalization for cross-platform compatibility
- Created Windows-specific fallback strategy for loading plugins
- Added more robust path resolution with glob dependency

### Project Creation Improvements

Multiple improvements to the project creation process:

- Auto-installing AI model plugins when selected during project creation ([PR #5335](https://github.com/elizaOS/eliza/pull/5335))
- Showing correct component type in create command messages (Plugin/Agent/TEE Project) instead of always showing "Project" ([PR #5337](https://github.com/elizaOS/eliza/pull/5337))
- Fixing directory display and cleanup on interruption ([PR #5321](https://github.com/elizaOS/eliza/pull/5321))

## API Changes

### REST API Documentation Corrections

The REST API documentation was updated to match the actual server implementation ([PR #5380](https://github.com/elizaOS/eliza/pull/5380)), fixing:

- Non-existent endpoints that were incorrectly documented
- Incorrect request parameters
- Missing authentication requirements

### New Socket Server Issue

A new issue was identified where if you include "DM" in your username and chat over an AgentServer socket, agents will never ignore messages ([Issue #5425](https://github.com/elizaOS/eliza/issues/5425)). A fix is being worked on.

## Social Media Integrations

### Twitter/X Plugin Overhaul

Significant discussions occurred around Twitter/X API limitations:

- The basic tier is severely limited (only 1 DM per day), making it essentially unusable for agent interactions
- Even enterprise pricing has significant limitations
- A complete refactor of the twitter-plugin (v1.0.14) was recently released to fix API usage issues
- The plugin now properly uses legitimate Twitter APIs to avoid account bans
- Documentation has been updated with a comprehensive README

```javascript
// Using Twitter API v2 properly with OAuth
const client = new TwitterApi({
  appKey: process.env.TWITTER_API_KEY,
  appSecret: process.env.TWITTER_API_SECRET,
  accessToken: process.env.TWITTER_ACCESS_TOKEN,
  accessSecret: process.env.TWITTER_ACCESS_SECRET
});

// Warning: Limited to 1 DM/day on basic plan
const dmMessage = await client.v2.sendDm(
  recipientId,
  { text: message }
);
```

## Model Provider Updates

### AI Model Plugin Auto-Installation

A new feature was added to auto-install AI model plugins when creating a new project ([PR #5335](https://github.com/elizaOS/eliza/pull/5335)):

- When selecting an AI model (e.g., OpenAI, Claude) during project creation
- The system now automatically installs the corresponding plugin package
- Previously, only API keys were stored in `.env` but plugins weren't installed

### Plugin Migration Tool

Progress continues on the AI-powered migration tool for upgrading ElizaOS plugins from v0.x to v1.x, featuring a step-by-step guided process with Claude AI assistant ([PR #5311](https://github.com/elizaOS/eliza/pull/5311)).

## Breaking Changes

### V2 Migration Preparations

The ElizaOS team confirmed that V2 is coming soon, with multiple users inquiring about its release date. While specifics weren't shared, the current development activity suggests preparation for this major update:

- Comprehensive code linting across multiple packages ([PR #5420](https://github.com/elizaOS/eliza/pull/5420))
- Standardization of testing infrastructure ([Issue #5218](https://github.com/elizaOS/eliza/issues/5218))
- Documentation restructuring to support the new architecture ([PR #5401](https://github.com/elizaOS/eliza/pull/5401))

Developers should monitor upcoming announcements for migration guides and potential breaking changes as V2 approaches.

---

For hands-on guidance with the current version, check out the new [ElizaOS Tutorial Episode 2](https://youtu.be/oQBPHiE3-IY) covering CLI usage, project creation, character file setup, and running agents in dev mode.