A general-purpose AI agent with extensible skills, browser control, scheduled tasks, auto-fix capabilities, and multiple interface support (CLI + Telegram).
- 🤖 AI-powered - Powered by NVIDIA NIM LLM (Llama 3.3)
- 💬 Multiple Interfaces - CLI and Telegram bot support
- 🌐 Browser Automation - Headless/visible Chrome control with actual web page parsing
- 📦 Extensible Skills - Add new skills via
skill.mdfiles - 💾 Persistent History - Markdown-based conversation storage
- 📅 Scheduled Tasks - One-time, recurring (cron-like), and heartbeat intervals
- 🔧 Auto-fix - Automatic problem solving with up to 5 retry attempts
- 🔐 Permission System - Ask before installing packages or running commands
- 🧬 Self-Modification - Agent can modify its own code with automatic rollback on failure
# Clone and install
npm install
# Configure
cp env.example .env
# Edit .env with your API keys
# Run CLI
npm run cli
# Or run Telegram bot
npm startEdit config.yaml to customize:
llm:
model: meta/llama-3.3-70b-instruct
browser:
mode: headless # or "visible"
persistence:
enabled: true
scheduler:
enabled: true
default_max_attempts: 5
permissions:
enabled: trueGeneral:
help- Show all commandsskills- List available skillshistory- Show conversation historyexit- Quit
Browser:
open <url>- Browse websites (actually parses content)screenshot- Take screenshotclick <element>- Click elementbrowser visible/browser headless- Switch mode
Scheduler:
schedule "task name" every 30 minutes- Create heartbeat taskschedule "task name" at 2026-02-20 14:00- Create one-time taskschedule "task name" daily at 9am- Create daily taskschedule "task name" weekly on monday at 9am- Create weekly taskschedules- List all scheduled tasksschedule run <id>- Run task immediatelyschedule stop <id>- Stop running taskschedule delete <id>- Remove task
Permissions:
permissions- List granted permissionspending- Show pending permission requestsallow <id>- Grant a permissiondeny <id>- Deny a permission
Stop:
stop/cancel/abort- Signal stop to running tasks
General:
/start- Welcome message/help- Commands list/skills- Available skills/settings- Current settings
Browser:
/open <url>- Open website/screenshot- Take screenshot/browser visible//browser headless- Switch mode
Scheduler:
/schedule "task name" every 30 minutes- Create task/schedules- List all tasks
Permissions:
/permissions- List permissions/pending- Pending requests/allow <id>- Grant permission/deny <id>- Deny permission
Stop:
/stop- Stop running tasks
GenAgent supports three types of scheduled tasks:
Run once at a specific datetime:
schedule "reminder" at 2026-02-20 14:00
Run on a schedule using cron-like syntax:
schedule "daily report" daily at 9am
schedule "weekly sync" weekly on monday at 9am
schedule "monthly backup" monthly on 1 at 0:00
Run at regular intervals:
schedule "health check" every 30 minutes
schedule "monitor" every 1 hour
schedule "backup" every 1 day
Tasks persist across restarts and are stored in data/schedules/.
When the agent encounters errors (missing packages, command not found, permission denied), it can automatically attempt to fix them:
- Error Detection - Analyzes error messages for fixable issues
- Solution Suggestion - Proposes a fix using available skills
- Permission Request - Asks once before attempting to fix
- Execution - Attempts to install packages or run commands
- Retry - Retries up to 5 times if unsuccessful
- Stop - User can stop at any time with
stopcommand
The agent supports fixing:
- Missing npm packages (
Cannot find module 'x') - Missing system packages (
command not found) - Missing pip packages (
ModuleNotFoundError) - Permission errors (
EACCES) - Missing folders (
ENOENT)
GenAgent asks for permission before:
- Installing packages (npm, brew, pip, apt)
- Running shell commands
- Accessing specific folders
Permission types:
package_install- Install npm/brew/pip/apt packagescommand_run- Execute shell commandsfolder_access- Read/write directoriesnetwork_access- Make network requests
Permissions can be:
once- Ask each timealways- Grant permanently
GenAgent can modify its own code to add new features or fix issues. This is a powerful capability with built-in safety mechanisms.
- Backup First - Before any modification, a full backup is created
- Apply Changes - The agent can create, update, or delete files in
src/andskills/ - Startup Verification - On next startup, the agent verifies its integrity
- Automatic Rollback - If verification fails, it automatically reverts to the previous version
- Directory Restrictions - Can only modify
src/andskills/directories - Backup System - Keeps up to 10 backups automatically
- Startup Check - Validates core files before starting
- User Prompt - If something goes wrong, the user is asked what to do next
- Add new skills (
skills/*.md) - Modify existing skills
- Add new modules (
src/**/*.js) - Modify existing source files
- Update configuration
- Files outside
src/andskills/(e.g.,node_modules,.env) - System files or critical configuration
Create skills/your-skill.md:
---
name: My Skill
description: What it does
priority: 10
triggers:
- keyword1
- keyword2
---
## Capabilities
- name: do_something
description: Does something
## System Prompt
You are an expert in...A built-in System skill handles package installation and command execution:
---
name: System
description: System operations, package installation, and command execution
triggers:
- install
- npm
- brew
- pip
- command
- run
- execute
---genagent/
├── src/
│ ├── core/ # Agent, scheduler, permissions, autofix
│ ├── interfaces/ # CLI & Telegram
│ ├── browser/ # agent-browser service
│ └── llm/ # NVIDIA client
├── skills/ # Skill definitions
├── data/ # Sessions, schedules, permissions
├── config.yaml # Configuration
└── package.json
- Node.js 20+
- grammY (Telegram)
- agent-browser (Browser automation)
- Inquirer (CLI)
- NVIDIA NIM (LLM)
- YAML (Configuration)
MIT