# ElizaOS Developer Update
*September 4, 2025*

## 1. Core Framework

The ElizaOS architecture underwent significant refactoring this week with a major focus on improving code organization and developer experience. PR [#5864](https://github.com/elizaos/eliza/pull/5864) introduced a comprehensive restructuring that centralizes business logic into a new `@eliza/server` package, moving over 870 lines of code from the CLI to create a cleaner separation of concerns.

Key architectural changes include:
- New `ElizaOS` orchestration class in the server package that manages the agent lifecycle
- Introduction of dedicated managers (AgentManager, PluginLoader, ConfigManager) that simplify core operations
- Elimination of code duplication between CLI and project bootstrapping
- Removal of 1,600+ lines of redundant code while maintaining full backward compatibility

The CLI has been streamlined to act as a thin orchestration layer, reducing complexity from 600+ lines to ~170 lines of delegation code, addressing issue [#5860](https://github.com/elizaos/eliza/issues/5860).

Additionally, the team fixed the Sentry integration with PR [#5867](https://github.com/elizaos/eliza/pull/5867), replacing the browser-focused implementation with a proper Node.js integration that supports AI telemetry from OpenAI and Anthropic plugins.

## 2. New Features

### Real-time Action Execution UI

PR [#5865](https://github.com/elizaos/eliza/pull/5865) introduces a comprehensive real-time action visualization system in the chat UI. Users can now see actions as they happen with detailed input/output data:

```tsx
// New actionTool.tsx component
export const ActionTool = ({ 
  action, 
  status, 
  input, 
  output, 
  error 
}: ActionToolProps) => {
  const [isExpanded, setIsExpanded] = useState(false);
  
  return (
    <div className={`action-tool ${status.toLowerCase()}`}>
      <div className="action-header" onClick={() => setIsExpanded(!isExpanded)}>
        <span className="action-name">{action}</span>
        <span className="action-status">{status}</span>
      </div>
      {isExpanded && (
        <div className="action-details">
          {input && (
            <div className="action-input">
              <h4>Input:</h4>
              <pre>{JSON.stringify(input, null, 2)}</pre>
            </div>
          )}
          {output && (
            <div className="action-output">
              <h4>Output:</h4>
              <pre>{JSON.stringify(output, null, 2)}</pre>
            </div>
          )}
          {error && (
            <div className="action-error">
              <h4>Error:</h4>
              <pre>{error}</pre>
            </div>
          )}
        </div>
      )}
    </div>
  );
};
```

The system includes:
- Real-time WebSocket integration for status updates
- Visual indicators for processing, completed, and error states
- Collapsible interface showing action inputs and outputs
- Integration with runtime action execution events

### Docker Support

PR [#5858](https://github.com/elizaos/eliza/pull/5858) adds Docker support to the project-starter template, enabling developers to containerize their ElizaOS agents for deployment to any cloud provider. The implementation includes:

```dockerfile
# packages/project-starter/Dockerfile
FROM oven/bun:1.2 as builder

WORKDIR /app

COPY package.json bun.lockb ./
RUN bun install --frozen-lockfile

COPY . .
RUN bun run build

FROM oven/bun:1.2-slim

WORKDIR /app

COPY --from=builder /app/package.json /app/bun.lockb ./
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/characters ./characters

EXPOSE 3000 3001
CMD ["bun", "start"]
```

A complementary `docker-compose.yaml` file was also added to simplify deployment across different environments.

## 3. Bug Fixes

Several critical bugs were addressed this week:

1. **Port Availability Issues**: PR [#5876](https://github.com/elizaos/eliza/pull/5876) fixed the CLI's port detection mechanism to automatically fallback to alternative ports when the default (3000) is occupied:

```typescript
// packages/cli/src/utils/port-handling.ts
export async function findAvailablePort(
  startPort: number, 
  host = 'localhost'
): Promise<number> {
  let port = startPort;
  const maxAttempts = 10;
  
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
    try {
      await checkPortAvailability(port, host);
      return port;
    } catch (error) {
      console.log(`Port ${port} unavailable, trying ${port + 1}...`);
      port++;
    }
  }
  
  throw new Error(`Could not find available port after ${maxAttempts} attempts`);
}
```

2. **Discord Image Generation**: PR [#5861](https://github.com/elizaos/eliza/pull/5861) fixed image generation in Discord channels, which was previously broken due to incorrect channel type detection.

3. **Crypto Dependency Issues**: PR [#5872](https://github.com/elizaos/eliza/pull/5872) resolved a critical issue with the `crypto-browserify` dependency that was causing runtime errors in the core package.

4. **Logger Improvements**: PR [#5849](https://github.com/elizaos/eliza/pull/5849) fixed the debug level not working correctly and improved terminal readability with better styling.

## 4. API Changes

The major architectural refactoring in PR [#5864](https://github.com/elizaos/eliza/pull/5864) maintains backward compatibility but introduces several new APIs that developers should be aware of:

```typescript
// New server orchestration API
import { ElizaOS } from '@elizaos/server';

// Initialize the ElizaOS orchestration
const eliza = new ElizaOS({
  configPath: './config',
  pluginsDir: './plugins',
  charactersDir: './characters'
});

// Start the agent with the new API
await eliza.start({
  character: 'eliza',
  port: 3000,
  plugins: ['plugin-openai', 'plugin-anthropic']
});
```

The refactoring moves business logic from the CLI to the server package, providing a cleaner API for developers integrating ElizaOS into their applications.

## 5. Social Media Integrations

The team is addressing issues with their X (Twitter) integration. According to Discord discussions, the ElizaOS X account has been suspended, and the team has filed a lawsuit against X to resolve the situation. There have been no specific code changes to social media plugins this week, but a clarification was provided that ElizaOS maintains multiple communication channels including Discord, Telegram, and regular updates in the AI-ElizaOS-update section.

## 6. Model Provider Updates

The team has updated Bun to version 1.2.21 across the monorepo in PR [#5874](https://github.com/elizaos/eliza/pull/5874), ensuring consistent tooling for all model provider integrations. This provides better compatibility with the latest AI SDKs.

Additionally, PR [#5867](https://github.com/elizaos/eliza/pull/5867) added Sentry telemetry support for AI model calls, enabling better monitoring of OpenAI and Anthropic API interactions:

```typescript
// Enabling OpenAI telemetry
const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  experimental_telemetry: true // Now supported with Sentry integration
});
```

This change provides enhanced observability for model provider calls, including performance tracking, error rates, and debugging capabilities.

## 7. Breaking Changes

While the team has worked to maintain backward compatibility with all changes, developers should be aware of these potential migration issues:

1. **NPM Release Workflow Changes**: PR [#5877](https://github.com/elizaos/eliza/pull/5877) unified the release workflow for NPM packages, aligning all workflows with the alpha pattern. The main changes include:
   - `develop` branch → Alpha releases (1.5.5-alpha.x)
   - `main` branch → Beta releases (1.5.5-beta.x)
   - GitHub release tags → Production releases (1.5.5)

2. **Version Bump to 1.5.5-alpha.1**: PR [#5871](https://github.com/elizaos/eliza/pull/5871) bumped the version across the entire monorepo from 1.4.3-alpha.6 to 1.5.5-alpha.1, which may impact developers pinned to specific versions.

3. **Architecture Refactoring**: While backward compatible, the architectural changes in PR [#5864](https://github.com/elizaos/eliza/pull/5864) move significant functionality from the CLI to the server package. Developers directly importing from internal CLI modules will need to update their imports.

Developers are advised to test their integrations with the latest alpha releases before upgrading to ensure compatibility with these changes.