20x
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 48 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
This application is a desktop-based task orchestrator that connects to platforms like Linear, GitHub, and HubSpot to feed tasks to AI coding agents. It runs entirely on your local machine, using a skills system to manage reusable instructions and a human-in-the-loop workflow to approve risky actions.
Security Assessment
Overall risk: Medium. The agent inherently executes shell commands and writes code via integrated tools like Claude Code or OpenAI Codex, which carries standard automated execution risks. It accesses potentially sensitive data by authenticating with external services (CRM, project management) using built-in OAuth flows. However, the light code scan found no hardcoded secrets or dangerous patterns. The tool restricts its network activity to connecting your local environment to the necessary external APIs.
Quality Assessment
The project appears healthy and actively maintained, with repository activity as recent as today. It uses the highly permissive MIT license. Community trust is moderate but growing, currently supported by 48 GitHub stars. The repository includes a thorough README with clear documentation, visual process flows, and setup instructions.
Verdict
Use with caution: the local-first design and clean code scan are positive, but developers must remain vigilant regarding the inherent risks of granting automated AI agents shell execution and third-party OAuth access.
Self-improving Agent orchestrator for all knowledge work
20x
One app. All your tasks. Powered by AI agents.
20x is a desktop app that turns your task list into an AI-powered workforce. Connect your tools — Linear, HubSpot, Peakflo — assign tasks to AI agents, and watch them work in real time.
No cloud. No subscriptions. Everything runs on your machine.
Why 20x?
Most AI tools make you copy-paste context between tabs. 20x flips it: your tasks come to the agents, not the other way around.
- Pull a task from Linear → AI agent picks it up, reads the context, writes the code, opens a PR
- Got a backlog of tickets? → Queue them up, agents work through them while you review
- Need human approval? → Agents pause and ask before doing anything risky
How It Works
- Tasks flow in — from Task sources (Linear, Hubspot, Github, Workflo) or created manually
- Triage agent — Assigns Coding agent (Claude Code, OpenCode, or Codex), relevant skills
- Agent works the task — with live streaming output, Questions and HITL support
- You stay in control — approve, review, merge
- Feedback loop — Agent creates updates the skills after task is completed
Features
🤖 Multi-Agent Support
- Claude Code — Anthropic's official agent SDK
- OpenCode — Open-source coding agent
- Codex — Zed Industries' agent framework
- Live transcripts — Watch agents think and work in real time
- Human-in-the-loop — Approve risky actions before execution
🔗 Smart Integrations
- Linear — Pull issues, update status, post comments
- HubSpot — Sync tickets and workflows
- Peakflo — Connect your Peakflo tasks
- OAuth built-in — Secure authentication flows
🧠 Skills System
- Reusable instructions — Create skill templates for common patterns
- Auto-learning — Agents update skills based on feedback
- Confidence tracking — Skills improve over time
🛠 Developer-First
- Git worktree management — Isolated branches per task
- Repository context — Agents know which repos to work on
- MCP servers — Connect Model Context Protocol tools
- Local-first — SQLite database, no cloud required
📋 Task Management
- Recurring tasks — Daily, weekly, monthly schedules
- Rich metadata — Types, priorities, due dates, labels
- File attachments — Add context files to tasks
- Output fields — Structured task results
- Smart search — Find anything fast
Getting Started
Prerequisites
- Node.js >= 22
- pnpm >= 9
- Git (for worktree features)
- GitHub CLI (optional, for repo features)
Installation
# Clone the repository
git clone https://github.com/peakflo/20x.git
cd 20x
# Install dependencies
pnpm install
macOS: Opening the App (Release Build)
macOS may block the app since it's not signed with an Apple Developer certificate. To open it, use one of these methods:
Option A: Right-click the app in /Applications and select Open, then confirm in the dialog.
Option B: Run in Terminal:
sudo xattr -cr /Applications/20x.app
Then open the app normally.
This is not required if you build from source and run with
pnpm dev.
Configuration
API Keys:
Configure in Agent Settings:
- Anthropic API key for Claude Code
- OpenAI API key for OpenCode (if needed)
Database:
- Stored at
~/Library/Application Support/pf-desktop/pf-desktop.db(macOS) - Automatic backups before migrations
Integrations:
- Get OAuth credentials from Linear/HubSpot/Peakflo
- Configure in Integrations settings
- Complete OAuth flow in-app
Development
# Start dev server
pnpm run dev
# Run tests
pnpm test
# Build for distribution
pnpm run build:mac # macOS
Architecture
Data Flow
React UI → Zustand Store → IPC Client → Preload Bridge → Main Process → SQLite
- Renderer — React 19 + Tailwind CSS 4 + Zustand 5
- Main Process — Electron 34 + SQLite + Agent orchestration
- Security — Full context isolation, no Node.js in renderer
Agent Architecture
Session Lifecycle:
- Start — Agent assigned, skills applied, session created
- Streaming — Real-time output sent to UI
- Approval — Agent pauses for human decisions
- Completion — Results saved, task updated
See AGENTS.md for detailed architecture.
Tech Stack
| Layer | Technology |
|---|---|
| Shell | Electron 34 |
| Build | electron-vite |
| Frontend | React 19 + Tailwind CSS 4 + Zustand 5 |
| UI Components | Radix UI primitives |
| Styling | cva + Tailwind CSS tokens |
| Icons | Lucide React |
| Font | Geist |
| Database | SQLite (better-sqlite3, WAL mode) |
| Agent SDKs | @opencode-ai/sdk, @anthropic-ai/claude-agent-sdk, @zed-industries/codex-acp |
| Testing | Vitest + happy-dom |
Contributing
We welcome contributions! Here's how:
- Fork the repo
- Create a branch:
git checkout -b feature/my-feature - Write code: Follow TypeScript strict mode, ESLint, Prettier
- Add tests: Vitest tests for new features
- Commit: Use conventional commits (
feat:,fix:, etc.) - Push:
git push origin feature/my-feature - Open PR: Describe changes, ensure CI passes
Code Style
- TypeScript strict mode
- Minimal Tailwind classes (prefer CSS variables)
- Use
pnpm(not npm) - Check
MEMORY.mdfor project patterns
Community
- Issues: GitHub Issues
- Discord: https://discord.gg/fUVsqTWDxX
Security
Local-First
- All data stored locally in SQLite
- No cloud sync, no subscriptions
- Optional database encryption
OAuth & API Keys
- Tokens encrypted with Electron
safeStorage - Keys never exposed to renderer process
- Parameterized SQL queries only
Electron Security
contextIsolation: truenodeIntegration: false- External links open in system browser
Roadmap
Planned
- Additional integrations (Jira, Asana, GitHub Issues, Notion)
- Team collaboration (shared task sources)
- Cost tracking (token usage per session)
- Agent templates (pre-configured profiles)
- Plugin marketplace (community skills)
- Desktop notifications
- Light theme
Recently Shipped
- ✅ Multi-agent support (OpenCode, Claude Code, Codex)
- ✅ Skills system with auto-learning
- ✅ Recurring tasks
- ✅ Linear, HubSpot, Peakflo integrations
- ✅ MCP server management
- ✅ Git worktree management
License
MIT © 2026 Peakflo
Built with Electron, React, and Anthropic Claude.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found