{"id":27210690,"url":"https://github.com/JackJuly/linkook","last_synced_at":"2025-04-10T01:02:26.010Z","repository":{"id":275193868,"uuid":"924810699","full_name":"JackJuly/linkook","owner":"JackJuly","description":"🔍 An OSINT tool for discovering linked social accounts and associated emails across multiple platforms using a single username.","archived":false,"fork":false,"pushed_at":"2025-03-05T11:11:29.000Z","size":2229,"stargazers_count":575,"open_issues_count":0,"forks_count":55,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-17T09:16:06.749Z","etag":null,"topics":["footprint","information-gathering","osint","osint-python","osint-tool","pentest-tool","pentesting","sherlock","sherlock-alternative","username-checker","username-search"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JackJuly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-30T17:35:16.000Z","updated_at":"2025-03-17T08:04:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"9b7867e7-1d75-413f-892c-e702462cf853","html_url":"https://github.com/JackJuly/linkook","commit_stats":null,"previous_names":["jackjuly/linkook"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackJuly%2Flinkook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackJuly%2Flinkook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackJuly%2Flinkook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JackJuly%2Flinkook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JackJuly","download_url":"https://codeload.github.com/JackJuly/linkook/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248137895,"owners_count":21053775,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["footprint","information-gathering","osint","osint-python","osint-tool","pentest-tool","pentesting","sherlock","sherlock-alternative","username-checker","username-search"],"created_at":"2025-04-10T01:02:20.997Z","updated_at":"2025-04-10T01:02:25.992Z","avatar_url":"https://github.com/JackJuly.png","language":"Python","readme":"# Linkook\n\nEnglish | [中文](README_zh.md)\n\n**Linkook** is an OSINT tool for discovering **linked/connected** social accounts and associated emails across multiple platforms using a single username. It also supports exporting the gathered relationships in a Neo4j-friendly format for visual analysis.\n\n![Screenshot](images/01.png)\n\n### Main Features\n\n- Search social media accounts across **multiple platforms** based on a given username.\n- Further retrieve **interlinked** social accounts, usernames, emails, and more.\n- Use **HudsonRock's Cybercrime Intelligence Database** to check if related emails have been affected by cybercrime or info-stealer infections.\n- Support exporting scan results to a Neo4j-friendly JSON format, enabling visual analysis in **Neo4j**.\n\n## Installation\n\n```shell\npipx install linkook\n```\n\nor use `pip` instead of `pipx`\n\n### Install manually\n\nYou can also use the following commands to install it manually.\n\n1. Download this repo\n\n```shell\ngit clone https://github.com/JackJuly/linkook\ncd linkook\n```\n\n2. You can run `Linkook` directly\n\n```shell\npython -m linkook {username}\n```\n\n3. Or you can install `Linkook`\n\n```shell\npython setup.py install\n```\n\n### Run Linkook\n\n```shell\nlinkook {username}\n```\n\n## Usage\n\n### `--show-summary`\n\nChoose whether to display a summary of the scan results.\n\n![Screenshot](images/02.png)\n\n### `--concise`\n\nChoose whether to display the output in a concise format.\n\n![Screenshot](images/03.png)\n\n### `--check-breach`\n\nUse HudsonRock's Cybercrime Intelligence Database to check whether the discovered email addresses have been compromised by cybercrime or info-stealing. If any data breach is found, the email address will be highlighted in red with '(breach detected)' in the output, and all detected emails will be listed in the Scan Summary.\n\n```\n...\nFound Emails: notbreached@mail.com, breached@mail.com(breach detected)\nLeaked Passwords:\n+ breached@mail.com: password123\n...\n...\n========================= Scan Summary =========================\n...\nBreached Emails: breached@mail.com(password123)\n```\n\n### `--hibp`\n\nUse the **Have I Been Pwned** API instead of HudsonRock’s Database for breach information checks. When using it for the first time, you need to provide an API key (requiring a HIBP subscription). The API key will be saved locally in `~/.hibp.key`.\n\n### `--neo4j`\n\nExport the query results as a JSON file compatible with Neo4j database imports, producing `neo4j_export.json`.\n\nIn Neo4j, use the **APOC** plugin to import the JSON data. The following **Cypher** code will import the data and, upon successful execution, return the counts of imported nodes and relationships.\n\n```cypher\nCALL apoc.load.json(\"file:///neo4j_export.json\") YIELD value\nCALL {\n  WITH value\n  UNWIND value.nodes AS node\n  CALL apoc.create.node(\n    node.labels,\n    apoc.map.merge({ id: node.id }, node.properties)\n  ) YIELD node AS createdNode\n  RETURN count(createdNode) AS nodesCreated\n}\nCALL {\n  WITH value\n  UNWIND value.relationships AS rel\n  MATCH (startNode {id: rel.startNode})\n  MATCH (endNode {id: rel.endNode})\n  CALL apoc.create.relationship(startNode, rel.type, {}, endNode) YIELD rel AS createdRel\n  RETURN count(createdRel) AS relsCreated\n}\nRETURN nodesCreated, relsCreated;\n```\n\nYou can use `MATCH (n) RETURN n` to view all results and their connections.\n\n![Screenshot](images/04.png)\n\n### Other Options\n\n**`--help`**: show help message.\n\n**`--silent`**: Suppress all output and only show summary.\n\n**`--scan-all`**: Scan all available sites in `provider.json`. If not set, only scan sites with `isConnected` set to **True**.\n\n**`--print-all`**: Output sites where the username was not found.\n\n**`--no-color`**: Output without color.\n\n**`--browse`**: Browse to all found profiles in the default browser.\n\n**`--debug`**: Enable verbose logging for debugging.\n\n**`--output`**: Directory to save the results. Default is `results`.\n\n**`--local`**: Force the use of the local provider.json file, add a custom path if needed. Default is `provider.json`.\n\n**`--version` \u0026 `--update`**: View version information and update directly using `pipx`.\n\n## Comparison with Sherlock\n\n[Sherlock](https://github.com/sherlock-project/sherlock) is a great tool that finds social media accounts based on usernames, and this project (Linkook) was partly inspired by it. But Sherlock has some limitations.\n\n- Only searches for the same username on each platform.\n- May miss accounts if a user uses different usernames across platforms.\n- Can mistakenly include accounts from unrelated users if they share the searched username.\n\nIn contrast, **Linkook** can go one step further:\n\n- **Recursively searches** for **linked** accounts from each discovered social account—even if different usernames are used.\n- Provides a more comprehensive view of the user’s online presence like email infos.\n- Supports exporting scan results into a Neo4j-friendly JSON format for **visualization**, making it easier to analyze associations between usernames, accounts, and emails to filter out unconnected accounts.\n\n## Contributing\n\nFor details on how `Linkook` works and how to contribute, please refer to [CONTRIBUTING.md](.github/CONTRIBUTING.md) for more details.\n\n## Support\n\n[![BuyMeACoffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-ffdd00?style=for-the-badge\u0026logo=buy-me-a-coffee\u0026logoColor=black)](https://buymeacoffee.com/ju1y)\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=JackJuly/linkook\u0026type=Date)](https://star-history.com/#JackJuly/linkook\u0026Date)\n","funding_links":["https://buymeacoffee.com/ju1y"],"categories":["pentesting"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJackJuly%2Flinkook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJackJuly%2Flinkook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJackJuly%2Flinkook/lists"}