Skip to content

Inspired by the Songbird from Cyberpunk 2077 - an intelligent construct that assists with complex tasks. This CLI agent brings that concept to your OSINT workflow, automating tasks using local LLMs via Ollama.

License

Notifications You must be signed in to change notification settings

gotogrub/Songbird

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Songbird

Songbird Agent

v2.0.0

CLI agent for local LLMs and OSINT investigations. Inspired by Songbird from Cyberpunk 2077.

Features

Development Assistant

  • Integration with Ollama for local LLM inference
  • Project context awareness (scans codebase structure, symbols, imports)
  • Git operations (status, diff, commit, push, pull)
  • Task processing from file (batch automation)
  • Interactive chat with code context
  • AI-assisted file editing and generation

OSINT Tool

  • Multi-platform username/email/phone/name search
  • 12 supported platforms (GitHub, VK, Telegram, Reddit, Twitter, etc.)
  • Anti-detection: User-Agent rotation, random delays, browser headers
  • LLM-powered profile analysis and summarization
  • HTML report generation
  • Search history persistence

Requirements

  • C++17 compiler (GCC 8+ or Clang 7+)
  • CMake 3.16+ or Make
  • libcurl
  • Ollama running locally (for LLM features)

Building

Using Make (recommended)

make

Using CMake

mkdir build && cd build
cmake ..
make -j$(nproc)

Installation

sudo make install

Or run directly:

./build/songbird

Building Releases

Linux Release

make release
# Output: release/songbird-linux-x86_64

Windows Release (cross-compile from Linux)

# Install mingw-w64
sudo apt install mingw-w64 mingw-w64-tools

# Download Windows curl library
mkdir -p deps/win && cd deps/win
curl -LO https://curl.se/windows/dl-8.11.1_1/curl-8.11.1_1-win64-mingw.zip
unzip curl-8.11.1_1-win64-mingw.zip
cd ../..

# Build
make release-win

Usage

Interactive Mode

songbird [project_path]

With Pre-selected Model

songbird -m llama3.2

Batch Task Processing

songbird -m codellama -t tasks.txt

Commands

General

Command Aliases Description
help h, ? Show available commands
models list-models, lm List available Ollama models
model use, m Select model to use
config cfg Show/set configuration
dir cd, chdir Change working directory
clear cls Clear screen

Chat & Context

Command Aliases Description
chat c, ask Chat with the model
clear-chat cc Clear chat history
scan refresh, index Scan project for context
context ctx Show current context
structure tree, ls Show project structure

Git Operations

Command Aliases Description
status gs Show git status
diff gd Show git diff
commit gc Commit changes (AI-generated message)
push gp Push to remote
pull gl Pull from remote

File Operations

Command Aliases Description
read cat, show Read and show file content
edit e Edit file with AI assistance
generate gen, create Generate new file with AI

Task Processing

Command Aliases Description
tasks t Load and show tasks from file
run-tasks rt, process Process tasks from file

OSINT

Command Aliases Description
osint-username ou Search by username across platforms
osint-email oe Search by email
osint-phone op Search by phone number
osint-name on Search by name
osint-status os Check platform availability
osint-config oc Configure OSINT settings
osint-history oh View/clear search history

OSINT Platforms

Technical

  • GitHub (REST API)
  • GitLab (API)
  • Stack Overflow (API)
  • Hacker News (Firebase API)
  • Dev.to (API)

Western

  • Reddit (JSON API)
  • Twitter/X (via Nitter)
  • Instagram (HTML parsing)
  • LinkedIn (public profiles)

Russian

  • VK (HTML parsing)
  • Telegram (t.me profiles)
  • OK / Odnoklassniki (HTML parsing)

OSINT Usage

# Check which platforms are available
> osint-status

# Search by username
> osint-username torvalds

# Search by email
> osint-email user@example.com

# Search by name
> osint-name "John Doe"

# View configuration
> osint-config

# Change LLM model for analysis
> osint-config model llama3.2

# Enable/disable LLM analysis
> osint-config llm off

# View search history
> osint-history

# Clear history
> osint-history clear

Reports are saved to osint_reports/ directory in HTML format.

Task File Format

Plain Text Format (tasks.txt)

# Comments start with #
1. Create a new utility function for string parsing file:src/utils.cpp
2. Fix the bug in authentication module
3. Add unit tests for the parser
4. Commit all changes
5. Push to remote

JSON Format (tasks.json)

[
  {
    "id": 1,
    "description": "Create utility function",
    "type": "code_write",
    "target_file": "src/utils.cpp",
    "details": "Function should parse CSV strings"
  },
  {
    "id": 2,
    "description": "Commit changes",
    "type": "git_commit"
  }
]

Task Types

  • code_write - Create new code/file
  • code_edit - Modify existing code
  • code_review - Review code
  • git_commit - Commit changes
  • git_push - Push to remote
  • run_command - Execute shell command
  • custom - General task

Configuration

# Enable auto-commit after each task
config auto-commit on

# Enable auto-push after all tasks complete
config auto-push on

# Toggle streaming output
config streaming off

Context System

Songbird maintains project context for the LLM:

  1. Project structure - Directory layout, file list
  2. Language detection - Identifies programming languages
  3. Symbol extraction - Classes, functions, variables
  4. Import analysis - Dependencies and relationships
  5. Config files - CMakeLists.txt, package.json, Cargo.toml, etc.

Context is cached in .songbird_cache.json for faster startup.

License

MIT

About

Inspired by the Songbird from Cyberpunk 2077 - an intelligent construct that assists with complex tasks. This CLI agent brings that concept to your OSINT workflow, automating tasks using local LLMs via Ollama.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages