Releases: ever-just/TextMyAgent
Releases Β· ever-just/TextMyAgent
v1.5.0 - API Usage Tracking & Permissions
What's New in v1.5.0
Features
- API Usage Tracking - Track daily/monthly API usage with statistics and analytics
- macOS Permissions Handler - Check and manage Contacts, Automation, Accessibility, and Full Disk Access permissions
- Enhanced Dashboard API - New endpoints for usage analytics and statistics
- Usage History Import - Script to import historical usage data
Improvements
- Improved logging with structured metadata
- Fixed Apple Cocoa timestamp conversion for test message injection
- Improved backlog protection for message processing
Documentation
- Added comprehensive Electron deep dive documentation for future desktop app packaging
Full Changelog: v1.4.0...v1.5.0
TEXTMYAGENT v1.4.0 - Email, Triggers & Dual-Agent System
TEXTMYAGENT v1.4.0 Release
Release Date: April 3, 2026
Created by: Weldon Makori
π What's New in v1.4.0
This release brings major new capabilities to TEXTMYAGENT, including email integration, automated triggers, and a dual-agent architecture for more reliable tool execution.
β¨ New Features
- π§ Email Integration (AgentMail) β Send, read, and reply to emails directly via iMessage
- π Triggers & Automation β Schedule recurring or one-time automated tasks
- π€ Dual-Agent System β Separate Interaction and Execution agents for better reliability
- π Enhanced Web Search β Real-time web search for current events, weather, and news
- β‘ Event-Driven Typing Indicators β More responsive typing feedback
π οΈ Improvements
- Duplicate message prevention cache
- Improved conversation summarization
- Private API read receipt support
- Better error handling and recovery
π Complete Setup Guide
Follow these steps to get TEXTMYAGENT running on your Mac.
Prerequisites
Before you begin, make sure you have:
- macOS (required for iMessage access)
- iMessage signed in on your Mac
- Node.js 18+ installed (download)
- Docker Desktop installed (download)
- Anthropic API key (get one)
- BlueBubbles Server installed and running (download)
Step 1: Install BlueBubbles Server
- Download BlueBubbles Server from bluebubbles.app
- Install and open the app
- Complete the setup wizard:
- Grant Full Disk Access in System Preferences β Security & Privacy β Privacy
- Grant Accessibility access
- Sign in with your Apple ID if prompted
- Note your server URL (usually
http://localhost:1234) - Set a server password in BlueBubbles settings
- Enable Private API for full features (optional but recommended)
Step 2: Clone the Repository
# Clone the repo
git clone https://github.com/ever-just/bluebubbles-ai-agent.git
# Navigate to the project
cd bluebubbles-ai-agentStep 3: Install Dependencies
# Go to the agent service directory
cd agent-service
# Install Node.js dependencies
npm installStep 4: Start Docker Services
# Start PostgreSQL and Redis containers
docker-compose up -d
# Verify containers are running
docker psYou should see two containers running:
agent-postgres(PostgreSQL database)agent-redis(Redis for job queues)
Step 5: Configure Environment Variables
# Copy the example environment file
cp .env.example .env
# Open .env in your editor
nano .env # or use any text editorFill in the required values:
# ============================================
# REQUIRED CONFIGURATION
# ============================================
# Anthropic Claude API
ANTHROPIC_API_KEY=sk-ant-api03-YOUR-KEY-HERE
# BlueBubbles Connection
BLUEBUBBLES_URL=http://localhost:1234
BLUEBUBBLES_PASSWORD=your-bluebubbles-password
# Database (default Docker setup)
DATABASE_URL=postgres://postgres:password@localhost:5432/agent_db
# Redis (default Docker setup)
REDIS_URL=redis://localhost:6379
# Security Keys (generate random strings)
ENCRYPTION_KEY=generate-a-32-character-string-here
SESSION_SECRET=generate-another-random-string-here
# ============================================
# OPTIONAL CONFIGURATION
# ============================================
# Claude Model (default: claude-3-5-haiku-latest)
ANTHROPIC_MODEL=claude-sonnet-4-5-20250929
# Response Settings
ANTHROPIC_RESPONSE_MAX_TOKENS=600
ANTHROPIC_TEMPERATURE=0.7
# Web Search (enabled by default)
ANTHROPIC_ENABLE_WEB_SEARCH=true
# Email Integration (optional)
AGENTMAIL_API_KEY=am_your-agentmail-key
AGENTMAIL_ENABLED=true
# Dual-Agent System (experimental)
ENABLE_DUAL_AGENT=trueStep 6: Generate Security Keys
Run these commands to generate secure random keys:
# Generate ENCRYPTION_KEY (32 characters)
openssl rand -hex 16
# Generate SESSION_SECRET
openssl rand -base64 32Copy the output and paste into your .env file.
Step 7: Start the Agent
# Development mode (with auto-reload)
npm run dev
# OR Production mode
npm run build && npm startStep 8: Verify Everything is Working
# Check the health endpoint
curl http://localhost:3000/healthExpected response:
{
"status": "healthy",
"timestamp": "2026-04-03T20:00:00.000Z",
"services": {
"database": "connected",
"redis": "connected",
"bluebubbles": "connected"
}
}Step 9: Configure BlueBubbles Webhooks
- Open BlueBubbles Server
- Go to Settings β API & Webhooks
- Add a new webhook:
- URL:
http://localhost:3000/webhook/messages - Events: Select "New Message"
- URL:
- Save the webhook
Step 10: Test It!
Send a text message to your Mac's phone number from another device. You should see:
- The message appear in BlueBubbles
- Logs in your terminal showing the message being processed
- A response sent back via iMessage
π§ͺ Quick Test Commands
# Inject a test message (for development)
curl -X POST http://localhost:3000/api/inject-message \
-H "Content-Type: application/json" \
-d '{"text":"Hello Grace!","phoneNumber":"+15551234567"}'
# Check health
curl http://localhost:3000/health
# View logs (if running in background)
tail -f logs/agent.logπ§ Troubleshooting
"Database connection refused"
# Make sure Docker containers are running
docker-compose up -d
# Check container status
docker ps"BlueBubbles not connected"
- Verify BlueBubbles Server is running
- Check the URL and password in
.env - Ensure BlueBubbles has Full Disk Access
"Anthropic API error"
- Verify your API key is correct
- Check you have API credits available
- Ensure the model name is valid
"Messages not being received"
- Check BlueBubbles webhook is configured
- Verify the webhook URL is correct
- Check the agent logs for errors
π Project Structure
bluebubbles-ai-agent/
βββ agent-service/ # Main application
β βββ src/ # TypeScript source code
β βββ dist/ # Compiled JavaScript
β βββ .env # Your configuration (not in git)
β βββ .env.example # Example configuration
β βββ docker-compose.yml # Docker services
β βββ package.json # Dependencies
βββ docs/ # Documentation
βββ README.md # Project overview
βββ RELEASE_NOTES.md # This file
π Useful Links
- GitHub Repository: https://github.com/ever-just/bluebubbles-ai-agent
- BlueBubbles: https://bluebubbles.app/
- Anthropic Console: https://console.anthropic.com/
- AgentMail: https://agentmail.to/
- Creator: https://weldonmakori.com
π Full Changelog
[1.4.0] - April 2026
- Added dual-agent system (Interaction + Execution agents)
- Implemented AgentMail email integration
- Added trigger/automation system for scheduled tasks
- Enhanced web search capabilities
- Fixed Apple Cocoa timestamp conversion
[1.3.0] - March 2026
- Event-driven typing indicators
- Duplicate message prevention cache
- Improved conversation summarization
- Private API read receipt support
[1.2.0] - February 2026
- Tool registry system with extensible tools
- Reminder service with natural language parsing
- Context service for user memory/preferences
- Rate limiting and request management
[1.1.0] - January 2026
- BlueBubbles webhook integration
- Claude 3.5 Sonnet/Haiku support
- Basic conversation history
- Health monitoring endpoints
[1.0.0] - December 2025
- Initial release
- Basic iMessage β Claude integration
- PostgreSQL + Redis infrastructure
- Express server with WebSocket support
TEXTMYAGENT v1.4.0
Your AI assistant, one text away.
Created by Weldon Makori