v2.0.0
CLI agent for local LLMs and OSINT investigations. Inspired by Songbird from Cyberpunk 2077.
- 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
- 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
- C++17 compiler (GCC 8+ or Clang 7+)
- CMake 3.16+ or Make
- libcurl
- Ollama running locally (for LLM features)
makemkdir build && cd build
cmake ..
make -j$(nproc)sudo make installOr run directly:
./build/songbirdmake release
# Output: release/songbird-linux-x86_64# 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-winsongbird [project_path]songbird -m llama3.2songbird -m codellama -t tasks.txt| 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 |
| 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 |
| 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 |
| 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 |
| Command | Aliases | Description |
|---|---|---|
tasks |
t |
Load and show tasks from file |
run-tasks |
rt, process |
Process tasks from file |
| 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 |
- GitHub (REST API)
- GitLab (API)
- Stack Overflow (API)
- Hacker News (Firebase API)
- Dev.to (API)
- Reddit (JSON API)
- Twitter/X (via Nitter)
- Instagram (HTML parsing)
- LinkedIn (public profiles)
- VK (HTML parsing)
- Telegram (t.me profiles)
- OK / Odnoklassniki (HTML parsing)
# 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 clearReports are saved to osint_reports/ directory in HTML format.
# 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
[
{
"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"
}
]code_write- Create new code/filecode_edit- Modify existing codecode_review- Review codegit_commit- Commit changesgit_push- Push to remoterun_command- Execute shell commandcustom- General task
# 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 offSongbird maintains project context for the LLM:
- Project structure - Directory layout, file list
- Language detection - Identifies programming languages
- Symbol extraction - Classes, functions, variables
- Import analysis - Dependencies and relationships
- Config files - CMakeLists.txt, package.json, Cargo.toml, etc.
Context is cached in .songbird_cache.json for faster startup.
MIT
