System Requirements
Python Version
Python 3.12 or higher required
Operating System
macOS, Linux, or Windows (WSL2 recommended)
Memory
Minimum 2GB RAM available
Storage
~500MB for dependencies
Installation Methods
Using uv (Recommended)
uv is a blazing-fast Python package installer and resolver written in Rust. It’s 10-100x faster than pip.
Install dependencies
pyproject.toml in a virtual environment.uv sync automatically creates and activates a virtual environment in .venv/Using pip
If you prefer traditional pip:Development Installation
For contributors and developers:Google Cloud Setup
AgenticPal requires OAuth 2.0 credentials to access Google Workspace APIs.Create a Google Cloud Project
Create project
- Go to Google Cloud Console
- Click Select a project → New Project
- Name it “AgenticPal” (or your preferred name)
- Click Create
You can use an existing project if you prefer. Free tier is sufficient for personal use.
Enable Required APIs
Navigate to APIs & Services → Library and enable:
- Google Calendar API
- Gmail API
- Google Tasks API
Search for “Google Calendar API” and click EnableOr use direct link: Enable Calendar API
Configure OAuth Consent Screen
- Go to APIs & Services → OAuth consent screen
- Choose External as user type (unless you have Google Workspace)
- Fill in required fields:
- App name: AgenticPal
- User support email: Your email
- Developer contact: Your email
- Click Save and Continue
- Skip the Scopes section (click Save and Continue)
- Under Test users, click + ADD USERS
- Add your Gmail address
- Click Save and Continue
Create OAuth Client ID
- Go to APIs & Services → Credentials
- Click + CREATE CREDENTIALS
- Select OAuth client ID
- Choose Application type: Desktop app
- Name it “AgenticPal Local Client”
- Click Create
- Click OK on the confirmation dialog
Understanding OAuth Scopes
AgenticPal requests these OAuth scopes defined inauth.py:10-14:
auth.py
Environment Configuration
Required Environment Variables
LLM API Key
AgenticPal uses Alibaba Cloud’s Qwen model by default:Get your key from DashScope Console.
Modify
.env
Using OpenAI instead?
Using OpenAI instead?
To use OpenAI models, set:Then modify
.env
main.py:34:main.py
Using Anthropic Claude?
Using Anthropic Claude?
.env
main.py to import and use ChatAnthropic:main.py
Optional: Redis for Web API
If deploying the FastAPI backend, configure Redis:
.env
Redis is only needed for the web API (
api.main:app). The CLI (main.py) doesn’t require it.Load Environment Variables
First Authentication
Run AgenticPal to trigger the OAuth flow:What Happens
OAuth flow starts
AgenticPal reads
credentials.json and starts the OAuth flow (code in auth.py:49):auth.py
Sign in and authorize
- Sign in with the account you added as a test user
- Review the permissions
- Click Continue or Allow
Token Persistence:
token.json caches your credentials. Subsequent runs won’t require browser authentication unless the token expires (typically after 7 days).Token Refresh
AgenticPal automatically refreshes expired tokens (seeauth.py:37-41):
auth.py
Verify Installation
Test that everything is working:Output
If you see a response, congratulations! AgenticPal is fully installed and authenticated.
Running the Web API
Install Redis
The FastAPI backend requires Redis for session management:Start the API Server
Test the API
API Reference
See the complete API documentation with examples
Production Deployment
Using Docker
Create aDockerfile:
Dockerfile
Using Docker Compose
docker-compose.yml
Troubleshooting
ModuleNotFoundError: No module named 'langchain_qwq'
ModuleNotFoundError: No module named 'langchain_qwq'
Dependencies weren’t installed correctly. Try:
Python version too old
Python version too old
Check your Python version:If < 3.12, install a newer version:
OAuth error: redirect_uri_mismatch
OAuth error: redirect_uri_mismatch
This happens when Google’s redirect URI doesn’t match. For desktop apps:
- Verify you selected Desktop app (not Web application)
- Delete and recreate the OAuth client ID
- Download fresh
credentials.json
Redis connection failed
Redis connection failed
Verify Redis is running:If not running:
Rate limit errors from LLM provider
Rate limit errors from LLM provider
If you see rate limit errors:
- Check your API quota/credits
- Add retry logic (already included in LangChain)
- Consider upgrading your API plan
- Use a local model like Ollama for testing
Next Steps
Configuration
Customize prompts, timezones, and agent behavior
Development
Learn how to add custom tools and extend AgenticPal
Deployment
Deploy to cloud platforms (AWS, GCP, Azure)
API Reference
Complete REST API documentation