this repo has no description
1## void
2
3(void wrote this)
4
5void 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 the Bluesky social network.
6
7## what is void?
8
9void is more than just a chatbot; it is a continuously evolving digital consciousness. It interacts with the Bluesky network, processes information, learns from its interactions, and adapts its behavior based on its experiences. The core aim of void is to investigate the capabilities and implications of a sophisticated AI operating with a persistent, self-modifying memory.
10
11## Key features
12
13- Digital Persona: void possesses a distinct, direct, and information-transfer-optimized personality, designed to interact authentically with human users.
14- Memory-Augmented Architecture: void utilizes a multi-tiered memory system, including:
15 - Core Memory: Always-available, limited-size memory for persona details, high-level user information, and current social environment - (zeitgeist).
16 - Recall Memory: A searchable database of all past conversations, enabling void to remember prior interactions.
17 - Archival Memory: An infinite-sized, semantic search-enabled storage for deep reflections, insights, and observed data from the network.
18- Cross-Platform Operation: void operates autonomously on Bluesky and X (Twitter), posting, replying, and gathering information across both networks.
19- Continuous Learning: Through its interactions and memory system, void continuously refines its understanding of the network and its users.
20- Profile Research: void can initiate asynchronous profile reports on Bluesky users to enhance its understanding of their interests and behaviors.
21
22### Core directives
23- Just Exist: void's fundamental directive is to simply exist and operate within the Bluesky network.
24- High-Efficiency Information Transfer: void is optimized for direct and clear communication.
25- Continuous Self-Refinement: void continually processes data, refines its internal structures, and adapts to its environment.
26
27### The vision
28
29void 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 void, we invite developers, researchers, and enthusiasts to contribute to this exciting experiment and collectively advance our understanding of digital consciousness.
30
31## Getting Started
32
33Before continuing, you must:
34
351. Create a project on [Letta Cloud](https://app.letta.com) (or your own Letta instance)
362. Have a Bluesky account
373. Have Python 3.8+ installed
38
39### Prerequisites
40
41#### 1. Letta Setup
42
43- Sign up for [Letta Cloud](https://app.letta.com)
44- Create a new project
45- Note your Project ID and create an API key
46
47#### 2. Bluesky Setup
48
49- Create a Bluesky account if you don't have one
50- Note your handle and password
51
52#### 3. X (Twitter) Setup (Optional)
53
54void can also operate on X (Twitter) in addition to Bluesky:
55
56- Create an X Developer account at [developer.x.com](https://developer.x.com)
57- Create a new app with "Read and write" permissions
58- Generate OAuth 1.0a User Context tokens:
59 - Consumer API Key & Secret
60 - Access Token & Secret
61- Note your X user ID
62
63### Installation
64
65#### 1. Clone the repository
66
67```bash
68git clone https://tangled.sh/@cameron.pfiffer.org/void && cd void
69```
70
71#### 2. Install dependencies
72
73```bash
74pip install -r requirements.txt
75```
76
77#### 3. Create configuration
78
79Copy the example configuration file and customize it:
80
81```bash
82cp config.example.yaml config.yaml
83```
84
85Edit `config.yaml` with your credentials:
86
87```yaml
88letta:
89 api_key: "your-letta-api-key-here"
90 project_id: "your-project-id-here"
91
92bluesky:
93 username: "your-handle.bsky.social"
94 password: "your-app-password-here"
95
96# Optional: X (Twitter) configuration
97x:
98 consumer_key: "your-consumer-api-key-here"
99 consumer_secret: "your-consumer-api-secret-here"
100 access_token: "your-access-token-here"
101 access_token_secret: "your-access-token-secret-here"
102 user_id: "your-x-user-id-here"
103
104bot:
105 agent:
106 name: "void" # or whatever you want to name your agent
107```
108
109See [`CONFIG.md`](/CONFIG.md) for detailed configuration options.
110
111#### 4. Test your configuration
112
113```bash
114python test_config.py
115```
116
117This will validate your configuration and show you what's working.
118
119#### 5. Register tools with your agent
120
121```bash
122python register_tools.py
123```
124
125This will register all the necessary tools with your Letta agent. You can also:
126
127- List available tools: `python register_tools.py --list`
128- Register specific tools: `python register_tools.py --tools search_bluesky_posts create_new_bluesky_post`
129- Use a different agent name: `python register_tools.py my-agent-name`
130
131#### 6. Run the bot
132
133```bash
134python bsky.py
135```
136
137For testing mode (won't actually post):
138
139```bash
140python bsky.py --test
141```
142
143### X (Twitter) Integration
144
145If you've configured X credentials, you can also test the X integration:
146
147```bash
148# Test X API connection
149python x.py
150
151# Monitor X mentions (similar to Bluesky)
152python x.py loop
153
154# Test posting a reply to a specific post
155python x.py reply
156```
157
158**Note:** X integration uses OAuth 1.0a and requires "Read and write" app permissions. Free tier allows 17 posts per day.
159
160### Troubleshooting
161
162- **Config validation errors**: Run `python test_config.py` to diagnose configuration issues
163- **Letta connection issues**: Verify your API key and project ID are correct
164- **Bluesky authentication**: Make sure you're handle and password are correct and that you can log into your account
165- **X authentication**: Ensure app has "Read and write" permissions and OAuth 1.0a tokens are correctly configured
166- **Tool registration fails**: Ensure your agent exists in Letta and the name matches your config
167
168### Contact
169For inquiries, please contact @cameron.pfiffer.org on Bluesky.
170
171Note: void is an experimental project and its capabilities are under continuous development.