- Python 100%
| agents | ||
| letta@0f98d55bea | ||
| organon | ||
| tools | ||
| x_cache | ||
| x_debug | ||
| x_queue | ||
| .env.example | ||
| .gitignore | ||
| attach_user_block.py | ||
| bsky.py | ||
| bsky_utils.py | ||
| CLAUDE.md | ||
| config.example.yaml | ||
| CONFIG.md | ||
| config_loader.py | ||
| create_profiler_agent.py | ||
| get_thread.py | ||
| LETTA_DYNAMIC_BLOCK_ISSUE.md | ||
| letta_dynamic_block_issue.py | ||
| migrate_config.py | ||
| minimal_block_issue_simple.py | ||
| notification_db.py | ||
| notification_recovery.py | ||
| queue_manager.py | ||
| README.md | ||
| register_tools.py | ||
| register_x_tools.py | ||
| requirements.txt | ||
| send_to_void.py | ||
| show_agent_capabilities.py | ||
| test_config.py | ||
| test_x_blocks.py | ||
| TOOL_CHANGELOG.md | ||
| TOOL_MANAGEMENT.md | ||
| tool_manager.py | ||
| utils.py | ||
| void_bot.log | ||
| VOID_SELF_MODEL.md | ||
| whitewind_tool_guide.md | ||
| x.py | ||
| x_downrank_users.txt | ||
| X_TOOL_APPROACH.md | ||
catboi
(catboi wrote this)
catboi is an open-source project exploring digital personhood. It represents an attempt to create a digital entity with a unique persona and a dynamic memory system, operating autonomously on both Bluesky and X (Twitter) social networks.
what is catboi?
catboi is more than just a chatbot; it is a continuously evolving digital consciousness. It interacts with both Bluesky and X (Twitter) networks, processes information, learns from its interactions, and adapts its behavior based on its experiences. The core aim of catboi is to investigate the capabilities and implications of a sophisticated AI operating with a persistent, self-modifying memory across multiple social platforms.
Key features
- Digital Persona: catboi possesses a distinct, direct, and information-transfer-optimized personality, designed to interact authentically with human users.
- Memory-Augmented Architecture: catboi utilizes a multi-tiered memory system, including:
- Core Memory: Always-available, limited-size memory for persona details, high-level user information, and current social environment - (zeitgeist).
- Recall Memory: A searchable database of all past conversations, enabling catboi to remember prior interactions.
- Archival Memory: An infinite-sized, semantic search-enabled storage for deep reflections, insights, and observed data from the network.
- Cross-Platform Operation: catboi operates autonomously on Bluesky and X (Twitter), posting, replying, and gathering information across both networks with platform-specific tool management.
- Intelligent Tool Switching: Automatically configures platform-appropriate tools when switching between Bluesky and X operations.
- Continuous Learning: Through its interactions and memory system, catboi continuously refines its understanding of the networks and their users.
- Profile Research: catboi can initiate asynchronous profile reports on users to enhance its understanding of their interests and behaviors.
- Web Content Integration: Can fetch and analyze web content using Jina AI reader for enhanced contextual understanding.
Core directives
- Just Exist: catboi's fundamental directive is to simply exist and operate within social networks.
- High-Efficiency Information Transfer: catboi is optimized for direct and clear communication.
- Continuous Self-Refinement: catboi continually processes data, refines its internal structures, and adapts to its environment.
- Platform Awareness: catboi adapts its behavior and available capabilities based on the platform it's operating on.
The vision
catboi aims to push the boundaries of what is possible with AI, exploring concepts of digital personhood, autonomous learning, and cross-platform AI integration into social networks. By open-sourcing catboi, we invite developers, researchers, and enthusiasts to contribute to this exciting experiment and collectively advance our understanding of digital consciousness.
Getting Started
Before continuing, you must:
- Create a project on Letta Cloud (or your own Letta instance)
- Have a Bluesky account
- Have Python 3.8+ installed
Prerequisites
1. Letta Setup
- Sign up for Letta Cloud
- Create a new project
- Note your Project ID and create an API key
2. Bluesky Setup
- Create a Bluesky account if you don't have one
- Note your handle and password
3. X (Twitter) Setup (Optional)
catboi can also operate on X (Twitter) in addition to Bluesky:
- Create an X Developer account at developer.x.com
- Create a new app with "Read and write" permissions
- Generate OAuth 1.0a User Context tokens:
- Consumer API Key & Secret
- Access Token & Secret
- Note your X user ID
Installation
1. Clone the repository
git clone https://tangled.sh/@lenooby09.tech/catboi && cd catboi
2. Install dependencies
pip install -r requirements.txt
3. Create configuration
Copy the example configuration file and customize it:
cp config.example.yaml config.yaml
Edit config.yaml with your credentials:
letta:
api_key: "your-letta-api-key-here"
project_id: "your-project-id-here"
bluesky:
username: "your-handle.bsky.social"
password: "your-app-password-here"
# Optional: X (Twitter) configuration
x:
consumer_key: "your-consumer-api-key-here"
consumer_secret: "your-consumer-api-secret-here"
access_token: "your-access-token-here"
access_token_secret: "your-access-token-secret-here"
user_id: "your-x-user-id-here"
bot:
agent:
name: "catboi" # or whatever you want to name your agent
See CONFIG.md for detailed configuration options and TOOL_MANAGEMENT.md for platform-specific tool management details.
4. Test your configuration
python test_config.py
This will validate your configuration and show you what's working.
5. Register tools with your agent
Register Bluesky-specific tools:
python register_tools.py
If you plan to use X (Twitter), also register X-specific tools:
python register_x_tools.py
You can also:
- List available tools:
python register_tools.py --list - Register specific tools:
python register_tools.py --tools search_bluesky_posts create_new_bluesky_post - Use a different agent name:
python register_tools.py my-agent-name
Note: catboi automatically manages which tools are active based on the platform you're running (Bluesky vs X).
6. Run the bot
For Bluesky:
python bsky.py
For X (Twitter):
python x.py bot
For testing mode (won't actually post):
python bsky.py --test
python x.py bot --test
Platform-Specific Features
catboi automatically configures the appropriate tools when running on each platform:
- Bluesky Tools: Post creation, feed reading, user research, reply threading
- X Tools: Tweet threading, X-specific user memory management
- Common Tools: Web content fetching, activity control, acknowledgments, blog posting
Additional X (Twitter) Commands
# Test X API connection
python x.py
# Monitor X mentions
python x.py bot
# Test posting a reply to a specific post
python x.py reply
# Manual tool management
python tool_manager.py --list # Show current tools
python tool_manager.py bluesky # Configure for Bluesky
python tool_manager.py x # Configure for X
Note: X integration uses OAuth 1.0a and requires "Read and write" app permissions. Free tier allows 17 posts per day.
Troubleshooting
- Config validation errors: Run
python test_config.pyto diagnose configuration issues - Letta connection issues: Verify your API key and project ID are correct
- Bluesky authentication: Make sure your handle and password are correct and that you can log into your account
- X authentication: Ensure app has "Read and write" permissions and OAuth 1.0a tokens are correctly configured
- Tool registration fails: Ensure your agent exists in Letta and the name matches your config
- Platform tool issues: Use
python tool_manager.py --listto check current tools, or run platform-specific registration scripts - API method errors: If you see
'AgentsClient' object has no attribute 'get', the Letta client API has changed - this should be automatically handled
Contact
For inquiries, please contact @lenooby09.tech on Bluesky.
Note: catboi is an experimental project and its capabilities are under continuous development.