Skip to content

LocoreMind/locoagent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

94 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

LocoAgent

English ย |ย  ็ฎ€ไฝ“ไธญๆ–‡

๐Ÿค– An AI agent that autonomously operates social media through a real browser.

Demo Bun TypeScript Multi-Provider Chrome CDP Platforms License


๐Ÿ“‘ Table of Contents


โœจ What is LocoAgent?

LocoAgent is an AI-powered social-media agent that autonomously operates real accounts through genuine browser automation. It pairs an LLM-driven agentic loop with the agent-browser CLI to perceive โ†’ decide โ†’ act on live web pages โ€” liking posts, writing replies, following users, and publishing content the way a human would.

Under the hood it is a fork of the Claude Code CLI source tree, re-purposed for social automation: the battle-tested agent loop, ~40 tools, ~90 slash commands, and Ink/React terminal UI are reused, with a thin LocoAgent-specific layer (skills, workflows, persona, operation log) layered on top.

๐ŸŒŸ Why LocoAgent?

Feature Description
๐Ÿ–ฅ๏ธ Real browser, real sessions Drives Chrome via CDP with your actual login cookies โ€” no fragile API hacks, no headless fingerprint
๐ŸŽฏ Platform skill system Loads complete operation playbooks (37 operations for X.com) so the agent finishes composite tasks in a single pass
๐Ÿ” Workflow engine Deterministic, LLM-free browser pipelines that the agent supervises โ€” start, stop, schedule as a daemon
๐Ÿ“’ Operation log Persistent cross-session deduplication so the agent never repeats a like, follow, or reply
๐Ÿง  Multi-provider LLM Any OpenAI-compatible API โ€” OpenRouter, DeepSeek (thinking mode), OpenAI, Ollama, LM Studio, plus native Anthropic / Bedrock / Vertex
๐ŸŒ Multi-platform, concurrently Drive X, LinkedIn, and Reddit at the same time โ€” one isolated Chrome per platform, same-platform serial, cross-platform parallel
๐Ÿ–ฅ๏ธ Cross-OS One codebase runs on Windows, macOS, and Linux via a host/device abstraction layer

๐Ÿ—๏ธ How It Works

flowchart LR
    User([๐Ÿ‘ค User / Task]) --> Loop

    subgraph Agent["๐Ÿค– LocoAgent Core"]
        Loop["Agentic Loop<br/>(query.ts)"]
        Prompt["System Prompt<br/>(prompts.ts)"]
        Loop <--> Prompt
    end

    Loop <-->|"Anthropic / OpenAI shim"| LLM["๐Ÿง  LLM Provider"]
    Loop --> Tools["๐Ÿ› ๏ธ Tools ยท Bash"]
    Tools --> AB["๐ŸŒ agent-browser CLI"]
    AB --> CDP["Chrome CDP :9222"]
    CDP --> Web[("๐ŸŒ Live Web Page")]

    Skills["๐ŸŽฏ Platform Skills"] -. inject playbook .-> Prompt
    Persona["๐Ÿชช persona/"] -. persona + tasks .-> Prompt
    OpLog[("๐Ÿ“’ Operation Log")] -. dedup .-> Prompt

    WF["๐Ÿ” Workflow Engine"] --> AB
Loading

The agent perceives a page with agent-browser snapshot, the LLM decides the next action, a tool acts (click, fill, open), and the result is verified before the loop continues โ€” checking the operation log first so nothing gets done twice.


๐Ÿš€ Installation

โœ… Prerequisites

Requirement Version Notes
๐ŸฅŸ Bun Latest Runtime and package manager (Node is not enough)
๐ŸŸฉ Node.js โ‰ฅ 18 Required by some dependencies
๐ŸŒ agent-browser Latest Browser-automation CLI
๐Ÿ”ต Google Chrome Latest Driven over CDP
๐ŸŒฟ Git Any Powers context features

โšก One-click install (recommended)

One command installs Bun + agent-browser, clones the repo, scaffolds .env, and runs the health check. When run in a terminal it asks you to pick a provider (DeepSeek / Anthropic / OpenAI), enter your API key, then pick a model (Enter takes the latest; c lets you type any model name). The base URL is fixed per provider โ€” no need to type it.

macOS / Linux / WSL2

curl -fsSL https://raw.githubusercontent.com/LocoreMind/locoagent/main/install.sh | bash

Windows (PowerShell)

irm https://raw.githubusercontent.com/LocoreMind/locoagent/main/install.ps1 | iex

Installs into the current directory (an empty folder is used as-is; otherwise a ./locoagent subfolder is created; override with LOCO_DIR). The installer prints the exact target and lets you confirm it. Re-running from inside the checkout updates it in place. Afterwards: bun run setup-chrome && bun start. Chrome and Git are detected (not auto-installed) โ€” install them if the script warns.

๐Ÿ“ฅ Manual setup

git clone https://github.com/LocoreMind/locoagent.git
cd locoagent
bun install

# Verify your environment before first run
bun run doctor

โ–ถ๏ธ Run

# Interactive REPL
bun start

# Single query (headless / print mode)
bun start -p "open X.com and like the first post about AI agents"

# With a specific model
bun start --model anthropic/claude-sonnet-4.5

Tip

bun run doctor checks Bun, agent-browser, Chrome, and your .env in one shot. Add --check-cdp to probe the CDP port too.


โš™๏ธ Configuration

Create a .env file in the project root โ€” it is auto-loaded at startup (via the preloaded stubs/globals.ts). Configure your provider through the four neutral LLM_* variables; they are translated to the right internal settings at startup, so you never juggle provider-specific variable names:

# โ”€โ”€ LLM Provider โ€” pick ONE โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
LLM_PROVIDER=deepseek        # deepseek | openai | anthropic | custom
LLM_API_KEY=sk-...
LLM_MODEL=deepseek-chat      # blank = provider default
LLM_BASE_URL=                # only for `custom` / self-hosted OpenAI-compatible APIs

# Examples:
#   OpenAI    โ†’ LLM_PROVIDER=openai     LLM_MODEL=gpt-5.5
#   Anthropic โ†’ LLM_PROVIDER=anthropic  LLM_MODEL=claude-sonnet-4-6
#   Custom    โ†’ LLM_PROVIDER=custom     LLM_BASE_URL=http://localhost:1234/v1  LLM_MODEL=...

# โ”€โ”€ Agent behavior โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
SKIP_PERMISSIONS=1                             # required for non-interactive / automated runs

Tip

The LLM_* block is the recommended front door. Under the hood it maps to the legacy CLAUDE_CODE_USE_OPENAI / OPENAI_* / ANTHROPIC_* variables, which still work directly for existing setups โ€” an explicitly-set legacy value always wins. DeepSeek, OpenAI, OpenRouter, and every OpenAI-compatible endpoint share the same OPENAI_* namespace internally; the provider is decided by the base URL + model, not by the variable name.

Note

SKIP_PERMISSIONS=1 makes stubs/globals.ts inject --dangerously-skip-permissions into argv so automated/headless runs don't stop on permission prompts.


๐Ÿง  Model Providers

LocoAgent talks to any OpenAI-compatible API through a built-in translation shim (src/services/api/openaiShim.ts), keeping the rest of the system provider-agnostic.

Provider Base URL Notes
๐Ÿ”€ OpenRouter https://openrouter.ai/api/v1 Access 200+ models with one key
๐Ÿณ DeepSeek https://api.deepseek.com Thinking mode (reasoning_content) fully supported
๐ŸŸข OpenAI https://api.openai.com/v1 GPT-4o, o-series, etc.
๐Ÿฆ™ Ollama http://localhost:11434/v1 Local models
๐Ÿ’ป LM Studio http://localhost:1234/v1 Local models
๐Ÿ…ฐ๏ธ Anthropic (native SDK) Set ANTHROPIC_API_KEY only
โ˜๏ธ AWS Bedrock (native SDK) AWS credentials
๐ŸŒฅ๏ธ Google Vertex AI (native SDK) GCP credentials

Pick any of these with LLM_PROVIDER + LLM_BASE_URL (e.g. LLM_PROVIDER=custom, LLM_BASE_URL=https://openrouter.ai/api/v1). The neutral front door maps to the shim automatically; advanced users can still set CLAUDE_CODE_USE_OPENAI=1 and the OPENAI_* vars directly.

Behind a TLS-intercepting proxy (corporate VPN / campus FortiGate / Zscaler)

If a request fails with unable to get local issuer certificate or untrusted root, your network is re-signing TLS with its own CA. Export that gateway's root certificate to a .pem file and point NODE_EXTRA_CA_CERTS at it in .env โ€” LocoAgent then trusts it on every provider path, including the DeepSeek/OpenAI shim. If the provider host is outright blocked on that network, switch networks (e.g. a phone hotspot) or pick a provider that is allowed.


๐ŸŒ Browser Automation

LocoAgent controls a real Chrome browser over CDP (Chrome DevTools Protocol) using agent-browser.

๐Ÿ”’ Why Chrome CDP?

Social platforms detect and block headless browsers and API automation. LocoAgent runs through a real, full Chrome โ€” same engine, same fingerprint โ€” so it behaves like you actually do. It uses a dedicated, isolated, persistent profile (separate from your everyday Chrome): you log into your accounts once and the session sticks, while your normal browsing is never disturbed.

๐Ÿ› ๏ธ Setup

# One-time: launch the isolated Chrome with CDP (same command on Windows / macOS / Linux).
# It never kills your normal Chrome and never wipes your session.
bun run setup-chrome

# First run only: log into X / your socials in the window that opens โ€” it persists.
# Re-running just reconnects. To wipe the isolated profile and log in fresh:
bun run setup-chrome --reset

# Multi-platform: launch one target, or every target at once (one Chrome each).
bun run setup-chrome --target linkedin
bun run setup-chrome --all

๐Ÿ‘€ The Perceive โ†’ Act โ†’ Verify Loop

agent-browser open https://x.com/home     # ๐Ÿงญ Navigate
agent-browser snapshot -i                  # ๐Ÿ‘€ Perceive โ€” interactive elements with @ref IDs
agent-browser click @e5                     # ๐Ÿ‘† Act โ€” click a like button
agent-browser fill @e3 "Great research!"   # โŒจ๏ธ  Act โ€” type into a reply box
agent-browser screenshot result.png        # โœ… Verify โ€” capture the result

The full agent-browser CLI reference is embedded in the agent's system prompt, so it knows every command natively โ€” skills and workflows reference operations by name rather than re-explaining them.


๐ŸŽฏ Platform Skills

Skills are operation playbooks loaded on demand via slash commands. Loading one injects a complete manual into the agent's context, enabling composite task execution in a single pass.

๐Ÿ“š Available Skills

Platform Command Operations Coverage
๐Ÿฆ X.com (Twitter) /x-com 37 Browse ยท Engagement ยท Content creation ยท Social graph ยท Profile ยท Navigation ยท Lists

๐Ÿ’ฌ Usage

# Interactive โ€” load the skill, then give a task
> /x-com open home timeline, like first 3 posts about AI, reply to the best one

# Headless
bun start -p "/x-com like 5 posts about 'large language models', then follow the authors"

โž• Adding a New Platform

Create skills/<platform>/SKILL.md with YAML frontmatter:

---
description: "LinkedIn platform operations playbook"
allowed-tools:
  - Bash
user-invocable: true
---

# LinkedIn Operations

## 1. Navigation
...
## 2. Engagement
...

The skill auto-discovers at startup and becomes available as /linkedin. Design each operation as a self-contained section with preconditions, agent-browser commands, a verification step, and known pitfalls (see skills/x-com/SKILL.md for the established format).


๐ŸŒ Multi-Platform Targets

Run several social platforms at the same time โ€” each in its own isolated Chrome, on its own CDP port, behind its own proxy. A single registry, config/browser-targets.json, is the source of truth:

{
  "targets": {
    "x":        { "cdpPort": 9222, "proxy": "http://127.0.0.1:6738" },
    "linkedin": { "cdpPort": 9223, "proxy": null },
    "reddit":   { "cdpPort": 9224, "proxy": null }
  }
}

setup-chrome --all/--target, the workflow engine, and doctor --check-cdp all read from it โ€” add a platform once and every tool picks it up.

bun run setup-chrome --all            # ๐Ÿš€ one isolated Chrome per platform
bun run doctor --check-cdp            # ๐Ÿฉบ probe every target's CDP port

๐Ÿ”€ Same-platform serial ยท cross-platform parallel

The engine reads each workflow's "platform" field and injects the matching target (cdpPort, profile, proxy, device) into the executor โ€” you never hard-code a port. A per-platform file lock then keeps same-platform runs serial (one active tab per profile) while different platforms run concurrently:

# x + x โ†’ serialized; linkedin โ†’ in parallel with them. Automatically.
bun run workflow orchestrate --ids hf-papers-to-x,x-search-reply,linkedin-search-reply

๐Ÿ” Workflow Engine

Workflows are deterministic browser-automation pipelines that run without any LLM in the control flow (an LLM may still be called as a single step). The agent acts as a supervisor โ€” it can inspect status and start/stop runs, while execution stays scripted and reproducible.

๐Ÿ“ฆ Built-in Workflows

Workflow ID Schedule Description
๐Ÿ“ฐ HuggingFace Daily Papers hf-daily-papers daily Fetch top papers โ€” titles, abstracts, thumbnails โ€” and save to local data files
๐Ÿฆ HF Papers โ†’ X.com hf-papers-to-x daily Full pipeline: fetch HF papers โ†’ download thumbnails โ†’ post each as an image + text tweet
๐Ÿ” X.com Search & AI Reply x-search-reply hourly Search X.com Latest โ†’ read each post โ†’ generate a reply via LLM โ†’ post reply
๐Ÿ’ผ LinkedIn Search & AI Comment linkedin-search-reply hourly Search LinkedIn Latest โ†’ read each post โ†’ generate a comment via LLM โ†’ post comment

๐Ÿ–ฅ๏ธ CLI

bun run workflow list                          # ๐Ÿ“‹ List all workflows + status
bun run workflow run    --id hf-papers-to-x    # โ–ถ๏ธ  Run once (blocking)
bun run workflow start  --id hf-papers-to-x    # ๐Ÿš€ Run once (background)
bun run workflow daemon --id x-search-reply --interval 3   # ๐Ÿ”„ Run every 3 minutes
bun run workflow orchestrate --ids a,b,c       # ๐ŸŒ Multi-platform: same serial, cross parallel
bun run workflow stop   --id x-search-reply    # ๐Ÿ›‘ Stop at next checkpoint
bun run workflow reset  --id x-search-reply    # โ™ป๏ธ  Clear stopped state โ†’ idle
bun run workflow status                        # ๐Ÿ“Š Status of all workflows
bun run workflow history --id hf-papers-to-x   # ๐Ÿ•˜ Execution history

๐Ÿงฑ Creating a Custom Workflow

Step 1 โ€” Definition (workflows/<id>.json):

{
  "id": "my-workflow",
  "name": "My Custom Workflow",
  "description": "What this workflow does",
  "schedule": "daily",
  "platform": "x",
  "executor": "executors/my-workflow.ts",
  "config": { "searchQuery": "ai agent", "maxPosts": 5 }
}

Tip

Set "platform" (e.g. x / linkedin / reddit) โ€” never hard-code cdpPort. The engine injects the target's cdpPort, profile, proxy, and device from config/browser-targets.json into config at run time, and locks the platform for the run.

Step 2 โ€” Executor (workflows/executors/my-workflow.ts):

#!/usr/bin/env bun
import { execSync } from 'node:child_process'

const configArg = process.argv.find((_, i, a) => a[i - 1] === '--config')
const config = JSON.parse(configArg!)

function ab(cmd: string): string {
  return execSync(`agent-browser --cdp ${config.cdpPort} ${cmd}`, {
    encoding: 'utf-8', timeout: 30000,
  }).trim()
}

console.error('[my-workflow] Step 1: ...')        // ๐Ÿ“ logs โ†’ stderr
// ... your automation logic using ab() ...

console.log(JSON.stringify({ stepsCompleted: 1, stepsTotal: 1 }))   // ๐Ÿ“ค summary โ†’ last line of stdout

Step 3 โ€” Test:

bun run workflow run --id my-workflow

Important

Executor contract: accept --config <json>, log to stderr, and emit a single JSON object ({stepsCompleted, stepsTotal}) as the last line of stdout. Missing or malformed output marks the run as failed.

๐Ÿ“– Full guide: docs/workflow-development-guide.md โ€” covers deduplication, the checkpoint/stop protocol, LLM integration, and daemon mode.


๐Ÿ“’ Operation Log

Persistent memory across sessions. The agent checks the log before acting and records every action after โ€” preventing duplicate likes, follows, and replies. This dedup contract is the core of the agent's identity.

# ๐Ÿ” Check before acting (exit 0 = already done โ†’ skip; exit 1 = not done โ†’ proceed)
bun run scripts/log-operation.ts check \
  --platform x --action like --url "https://x.com/.../status/123"

# โœ… Record after a successful action
bun run scripts/log-operation.ts add \
  --platform x --action like --url "https://x.com/.../status/123" \
  --status success --note "AI agents research post"

# ๐Ÿ•˜ View recent operations
bun run scripts/log-operation.ts recent --limit 20

# ๐Ÿ“Š 30-day summary (auto-injected into the system prompt at startup)
bun run scripts/log-operation.ts summary --days 30

State lives in persona/operation-log.json (human-readable JSON). The 30-day summary is injected into every session's system prompt so the agent always knows its recent history.


๐Ÿ—“๏ธ Task Scheduling

Replace ad-hoc prompts with structured daily/weekly task execution.

๐Ÿ“ Define Tasks โ€” persona/tasks.md

## Daily Tasks
1. Engage with relevant content (like posts matching topic queries)
2. Monitor own project mentions
3. Leave 1 technical comment on the most relevant post

## Weekly Tasks (Monday)
4. Follow 3-5 relevant researchers
5. Post 1 original tweet about recent research findings

## Session Constraints
| Action   | Max per session |
|----------|:---------------:|
| Likes    | 10              |
| Comments | 2               |
| Follows  | 5               |
| Posts    | 1               |

โ–ถ๏ธ Run

bun run run-tasks                   # Execute today's tasks
bun run run-tasks:dry               # Preview the generated prompt without running
bun run run-tasks -- --platform x   # Restrict to one platform

Note

persona/ is gitignored and absent from a fresh clone. The agent runs fine without it โ€” just without persona, task, and operation-history context in the prompt.


๐Ÿ“ก Trajectory Monitor

--print mode is a black box. The trajectory monitor watches the session log and prints live execution status.

# Terminal 1 โ€” start the monitor
bun run tail

# Terminal 2 โ€” run the agent
bun start -p "/x-com open timeline, like first post"
โ•โ•โ• New Task โ•โ•โ•
/x-com open timeline, like first post

[6:30:47 PM] โšก Bash: agent-browser connect 9222
[6:30:47 PM] โœ“ Result: Done
[6:31:10 PM] โšก Bash: agent-browser open https://x.com/home
[6:31:27 PM] โšก Bash: agent-browser snapshot -i -c -s 'article'
[6:31:44 PM] โ— Agent: Found first post, like button ref=e136
[6:31:44 PM] โšก Bash: agent-browser click e136
[6:31:45 PM] โœ“ Result: Done
bun run tail:history     # ๐Ÿ” Replay latest session from the beginning
bun run tail:list        # ๐Ÿ“‹ List recent sessions
bun run tail <id>        # ๐ŸŽฏ Watch a specific session

๐Ÿฉบ Doctor โ€” Health Check

A cross-platform preflight check and onboarding aid. Run it before your first session or whenever something feels off.

bun run doctor               # Check Bun, agent-browser, Chrome, .env
bun run doctor --check-cdp   # โ€ฆalso probe every platform target's CDP port

It detects your host OS (Windows / macOS / Linux), resolves the Chrome binary path, probes each target in config/browser-targets.json, and reports anything missing or misconfigured.


๐Ÿ“ Project Structure

locoagent/
โ”œโ”€โ”€ src/                          # โฌ†๏ธ Vendored Claude Code CLI source โ€” treat as a dependency
โ”‚   โ”œโ”€โ”€ entrypoints/cli.tsx       #    CLI entry point
โ”‚   โ”œโ”€โ”€ services/api/             #    Multi-provider LLM shim (openaiShim / codexShim)
โ”‚   โ”œโ”€โ”€ services/mcp/             #    MCP server management
โ”‚   โ”œโ”€โ”€ tools/                    #    ~40 tool implementations
โ”‚   โ”œโ”€โ”€ commands/                 #    ~90 slash commands
โ”‚   โ”œโ”€โ”€ components/ ยท hooks/      #    Ink/React terminal UI
โ”‚   โ”œโ”€โ”€ query.ts                  #    Agentic loop engine
โ”‚   โ””โ”€โ”€ constants/prompts.ts      #    ๐Ÿ”Œ The seam โ€” injects LocoAgent state into the prompt
โ”œโ”€โ”€ scripts/                      # ๐Ÿงฉ LocoAgent-specific tooling
โ”‚   โ”œโ”€โ”€ setup-chrome.ts           #    Chrome + CDP launcher (cross-platform)
โ”‚   โ”œโ”€โ”€ doctor.ts                 #    Health check / onboarding
โ”‚   โ”œโ”€โ”€ log-operation.ts          #    Operation-log CLI (dedup)
โ”‚   โ”œโ”€โ”€ run-tasks.ts              #    Task scheduler
โ”‚   โ”œโ”€โ”€ tail-agent.ts             #    Live trajectory monitor
โ”‚   โ”œโ”€โ”€ workflow-engine.ts        #    Workflow lifecycle manager
โ”‚   โ””โ”€โ”€ lib/                      #    Platform layer โ€” host ยท device ยท config ยท target lock
โ”œโ”€โ”€ config/
โ”‚   โ””โ”€โ”€ browser-targets.json      # ๐ŸŒ Per-platform target registry (cdpPort ยท proxy ยท profile)
โ”œโ”€โ”€ skills/<platform>/SKILL.md    # ๐ŸŽฏ Platform operation playbooks (โ†’ /<platform>)
โ”œโ”€โ”€ workflows/
โ”‚   โ”œโ”€โ”€ <id>.json                 #    Workflow definitions
โ”‚   โ”œโ”€โ”€ executors/<id>.ts         #    Scripted pipelines
โ”‚   โ””โ”€โ”€ state.json                #    Runtime state (gitignored)
โ”œโ”€โ”€ persona/                      # ๐Ÿชช Persona, tasks, operation log (gitignored)
โ”œโ”€โ”€ docs/                         # ๐Ÿ“– Public docs (workflow guide, cross-platform guide)
โ”œโ”€โ”€ stubs/                        #    Preloaded globals + local package stubs
โ”œโ”€โ”€ .env                          #    Local config (auto-loaded)
โ””โ”€โ”€ package.json

Tip

The LocoAgent layer is small and lives outside src/. The seam is src/constants/prompts.ts, which shells out to inject persona, tasks, operation-log summary, and workflow status into every session's system prompt.


๐Ÿงฉ Tech Stack

Component Technology
๐ŸฅŸ Runtime Bun (Node not supported)
๐ŸŸฆ Language TypeScript (TSX)
โš›๏ธ UI React + Ink terminal renderer
โŒจ๏ธ CLI Commander.js
๐ŸŒ Browser automation agent-browser + Chrome CDP
๐Ÿง  LLM integration Anthropic SDK + OpenAI-compatible shim
๐Ÿ”Œ Extension protocol MCP (Model Context Protocol)

๐Ÿค Contributing

Contributions welcome! High-impact areas:

  • ๐ŸŽฏ New platform skills โ€” LinkedIn, Reddit, Instagram playbooks
  • ๐Ÿ” New workflows โ€” automated content pipelines (development guide)
  • ๐Ÿ› ๏ธ New tools โ€” extend agent capabilities
  • ๐Ÿ› Bug fixes โ€” especially browser-automation edge cases

Branch โ†’ change โ†’ bun run typecheck โ†’ commit (feat: / fix: / docs:) โ†’ PR with What / Why / How / Testing. See CONTRIBUTING.md for the full guide.

Note

There is no unit-test suite. Verify with bun run typecheck and a real bun start -p "..." run. bun test scripts runs the platform-layer unit tests.


๐Ÿ“„ License

MIT ยฉ LocoreMind

Built with ๐Ÿค– by LocoreMind ยท ็ฎ€ไฝ“ไธญๆ–‡

About

AI-powered social media agent with real browser automation

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages