# elizaOS Development Discord - 2025-05-14

## Overall Discussion Highlights

### Plugin Development & Architecture
- **Discord Plugin Extension**: Detailed discussion on proper methods to extend the Discord plugin in ElizaOS, focusing on class extension rather than service modification
- **DAG Viewer Tool**: DefiniteOptimist shared progress on a tool for visualizing and designing agent workflows using react-flow as the underlying technology
- **Plugin Versioning**: Clarification about Farcaster plugin versions, with distinction between `plugin-twitter` (for v2/v1.x) and `client-twitter` (for v0.x)

### Integration & Identity Management
- **GitHub-Wallet Integration**: Jin proposed several methods for linking wallet addresses to GitHub identities:
  - Hidden comments in profile READMEs
  - Comments in GitHub issues
  - GitHub gist implementation with API integration
- **Anonymous Airdrops**: Discussion about zkdrops for anonymous airdrops, with concerns about airdrop farming and potential mitigation strategies

## Key Questions & Answers

### Plugin Development
- **Q**: How close is Farcaster v2?  
  **A**: It exists but is currently in testing (DorianD)

- **Q**: What's the difference between `plugin-twitter` & `client-twitter`?  
  **A**: The former is for v2/v1.x and the latter for v0.x (sayonara)

- **Q**: For custom Discord plugin functionality, should I extend it in index.ts while NPXing the plugin or modify the entire plugin code?  
  **A**: Extending the base plugin in your own index.ts is usually cleaner than modifying the core code (Ruby)

- **Q**: What would be the advantages to NPM installing eliza cli instead of NPX?  
  **A**: Global install gives persistent access to cli commands without npx and is faster since you're not downloading the package each time (Ruby)

### DAG Viewer Tool
- **Q**: Are you using graphviz under the hood for the DAG viewer?  
  **A**: It's react-flow under the hood (DefiniteOptimist)

- **Q**: Have you considered adding support for custom node types and conditional flows?  
  **A**: Yes, those are on the way! (DefiniteOptimist)

## Community Help & Collaboration

### Discord Plugin Extension Support
Ruby provided comprehensive guidance to Scooter on extending the Discord plugin:
- Identified version mismatch issues in package.json
- Recommended pinning @elizaos/cli and @elizaos/core to specific beta versions
- Shared a complete implementation example for extending the DiscordPlugin class with custom reply functionality
- Explained proper plugin extension patterns that work with ElizaOS's architecture

### Farcaster Module Selection
Sayonara helped Jonas understand which Twitter module to use with Farcaster, clarifying that plugin-twitter is for v2/v1.x and client-twitter is for v0.x

### DAG Viewer Feature Suggestions
Ruby provided DefiniteOptimist with feature suggestions for the DAG viewer:
- Agent state tracking and debug views
- Circuit breakers and rate limiting between nodes
- Budget constraints to prevent resource spiraling

## Action Items

### Technical
- Extend DiscordPlugin class directly instead of modifying the service to implement reply functionality (Ruby)
- Pin @elizaos/cli and @elizaos/core to specific beta versions (^1.0.0-beta.51) to match plugin versions (Ruby)
- Override sendMessage method in extended Discord plugin to implement reply functionality (Ruby)
- Implement wallet linking via GitHub gists using GitHub API (Jin)
- Develop strategies to mitigate airdrop farming by combining automated calculations with human evaluation (Jin)
- Develop dynamic dependency generation and orchestration capabilities for DAG viewer (DefiniteOptimist)

### Documentation
- Document the proper pattern for extending ElizaOS plugins (Ruby)

### Features
- Link wallets in hidden comments on GitHub profile READMEs (Jin)
- Link wallets as comments in GitHub issues (Jin)
- Add agent state tracking and debug views to help catch edge cases in decision trees (Ruby)
- Implement custom node types and conditional flows for modeling complex agent behavior patterns (Ruby)
- Add budget constraints for applications and pathways in DAG viewer (DefiniteOptimist)
- Implement circuit breakers or rate limiting between nodes to prevent cascading failures (Ruby)