bytedance/deer-flow
An open-source long-horizon SuperAgent harness that researches, codes, and creates. With the help of sandboxes, memories, tools, skill, subagents and message gateway, it handles different levels of tasks that could take minutes to hours.
Python★ 81,925+195 that day#6 on trending
1.86%duplicated code · 4,647 of 250,044 lines
387clones in code
1,062code files of 2,543 scanned
6.02%duplicated over all files · 3,181 clones
The code number leaves out tests, fixtures, docs, examples, data files, styles, translations and vendored code, and 1 generated file: backend/packages/harness/deerflow/tools/types.py.
Largest clones in the code
- 11 lines in 3 placespython121 tokensbackend/packages/harness/deerflow/community/exa/tools.py:56–66backend/packages/harness/deerflow/community/infoquest/tools.py:58–68backend/packages/harness/deerflow/community/tavily/tools.py:48–58
56@tool("web_fetch", parse_docstring=True) 57def web_fetch_tool(url: str) -> str: 58 """Fetch the contents of a web page at a given URL. 59 Only fetch EXACT URLs that have been provided directly by the user or have been returned in results from the web_search and web_fetch tools. 60 This tool can NOT access content that requires authentication, such as private Google Docs or pages behind login walls. 61 Do NOT add www. to URLs that do NOT have them. 62 URLs must include the schema: https://example.com is a valid URL while example.com is an invalid URL. 63 64 Args: 65 url: The URL to fetch the contents of.First 10 of 11 lines.
- 25 lines in 2 placespython225 tokensbackend/scripts/benchmark/checkpoint/summarize_channels.py:138–162backend/scripts/benchmark/checkpoint/summarize_production.py:141–165
138 summaries.append(summary) 139 return summaries 140 141 142def _columns(rows: list[dict[str, Any]]) -> list[str]: 143 preferred = [*_GROUP_FIELDS, "paired_repetitions", "failed_rows"] 144 extras = sorted({key for row in rows for key in row if key not in preferred}) 145 return [field for field in preferred if any(field in row for row in rows)] + extras 146 147First 10 of 25 lines.
- 31 lines in 2 placespython222 tokensbackend/packages/harness/deerflow/community/fastcrw/tools.py:63–93backend/packages/harness/deerflow/community/firecrawl/tools.py:30–60
63client = _get_fastcrw_client("web_search") 64result = client.search(query, limit=max_results) 65 66# result.web contains list of SearchResultWeb objects 67web_results = result.web or [] 68normalized_results = [ 69 { 70 "title": getattr(item, "title", "") or "", 71 "url": getattr(item, "url", "") or "", 72 "snippet": getattr(item, "description", "") or "",First 10 of 31 lines.
7 more
- 10 lines in 5 placespython55 tokens
- 9 lines in 5 placespython54 tokensbackend/packages/harness/deerflow/agents/memory/backends/deermem/deer_mem.py:326–334backend/packages/harness/deerflow/agents/memory/backends/honcho/honcho_manager.py:216–224backend/packages/harness/deerflow/agents/memory/backends/honcho/honcho_manager.py:296–304backend/packages/harness/deerflow/agents/memory/backends/mem0/mem0_manager.py:258–266backend/packages/harness/deerflow/agents/memory/backends/noop/noop_manager.py:128–136
- 33 lines in 2 placespython212 tokens
- 12 lines in 4 placespython67 tokensbackend/packages/harness/deerflow/agents/memory/backends/deermem/deermem/core/updater.py:1475–1486backend/packages/harness/deerflow/agents/memory/backends/deermem/deermem/core/updater.py:1505–1516backend/packages/harness/deerflow/agents/memory/backends/deermem/deermem/core/updater.py:1600–1611backend/packages/harness/deerflow/agents/memory/backends/deermem/deermem/core/updater.py:1779–1790
- 7 lines in 4 placespython67 tokens
- 19 lines in 4 placestypescript64 tokens
- 11 lines in 3 placespython86 tokens
Largest clones over all files, tests and data included
- 410 lines in 2 placesmarkdowndocs and examples8,943 tokens
1613 label thrash. ([#3455]) 1614 1615[2.0.0]: https://github.com/bytedance/deer-flow/releases/tag/v2.0.0 1616 1617[#2329]: https://github.com/bytedance/deer-flow/pull/2329 1618[#2556]: https://github.com/bytedance/deer-flow/pull/2556 1619[#2582]: https://github.com/bytedance/deer-flow/pull/2582 1620[#2583]: https://github.com/bytedance/deer-flow/pull/2583 1621[#2584]: https://github.com/bytedance/deer-flow/pull/2584 1622[#2585]: https://github.com/bytedance/deer-flow/pull/2585First 10 of 410 lines.
- 94 lines in 2 placesmarkdowndocs and examples2,068 tokens
2023[#4181]: https://github.com/bytedance/deer-flow/pull/4181 2024[#4187]: https://github.com/bytedance/deer-flow/pull/4187 2025[#4188]: https://github.com/bytedance/deer-flow/pull/4188 2026[#4190]: https://github.com/bytedance/deer-flow/pull/4190 2027[#4192]: https://github.com/bytedance/deer-flow/issues/4192 2028[#4193]: https://github.com/bytedance/deer-flow/pull/4193 2029[#4197]: https://github.com/bytedance/deer-flow/pull/4197 2030[#4199]: https://github.com/bytedance/deer-flow/pull/4199 2031[#4202]: https://github.com/bytedance/deer-flow/pull/4202 2032[#4203]: https://github.com/bytedance/deer-flow/pull/4203First 10 of 94 lines.
- 91 lines in 2 placesmarkdowndocs and examples1,982 tokens
2293[#4852]: https://github.com/bytedance/deer-flow/pull/4852 2294[#4853]: https://github.com/bytedance/deer-flow/pull/4853 2295[#4860]: https://github.com/bytedance/deer-flow/pull/4860 2296[#4861]: https://github.com/bytedance/deer-flow/pull/4861 2297[#4863]: https://github.com/bytedance/deer-flow/pull/4863 2298[#4865]: https://github.com/bytedance/deer-flow/pull/4865 2299[#4868]: https://github.com/bytedance/deer-flow/pull/4868 2300[#4877]: https://github.com/bytedance/deer-flow/pull/4877 2301[#4882]: https://github.com/bytedance/deer-flow/pull/4882 2302[#4887]: https://github.com/bytedance/deer-flow/pull/4887First 10 of 91 lines.
- 18 lines in 37 placesjsondocs and examples53 tokensfrontend/public/demo/threads/3823e443-4e2b-4679-b496-a9506eae462b/thread.json:804–821frontend/public/demo/threads/3823e443-4e2b-4679-b496-a9506eae462b/thread.json:902–919frontend/public/demo/threads/4f3e55ee-f853-43db-bfb3-7d1a411f03cb/thread.json:371–388frontend/public/demo/threads/4f3e55ee-f853-43db-bfb3-7d1a411f03cb/thread.json:509–526frontend/public/demo/threads/4f3e55ee-f853-43db-bfb3-7d1a411f03cb/thread.json:607–624and 32 more
- 187 lines in 2 placestxtdocs and examples1,758 tokens
By format, code only
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| python | 639 | 183,868 | 321 | 3,624 | 1.97% |
| tsx | 199 | 39,244 | 35 | 597 | 1.52% |
| typescript | 175 | 20,740 | 26 | 357 | 1.72% |
| bash | 39 | 4,805 | 5 | 69 | 1.44% |
| javascript | 8 | 852 | 0 | 0 | 0% |
| jsx | 1 | 361 | 0 | 0 | 0% |
| perl | 1 | 174 | 0 | 0 | 0% |
By format, all files
| Format | Files | Lines | Clones | Duplicated lines | Duplication |
|---|---|---|---|---|---|
| python | 1,363 | 485,052 | 2,573 | 31,356 | 6.46% |
| typescript | 366 | 59,114 | 250 | 3,513 | 5.94% |
| json | 55 | 16,501 | 154 | 3,309 | 20.05% |
| markdown | 215 | 56,704 | 67 | 1,580 | 2.79% |
| tsx | 226 | 42,183 | 38 | 649 | 1.54% |
| yaml | 105 | 9,029 | 32 | 446 | 4.94% |
| bash | 89 | 6,792 | 21 | 245 | 3.61% |
| text | 61 | 1,684 | 18 | 91 | 5.4% |
| css | 6 | 4,640 | 13 | 117 | 2.52% |
| markup | 13 | 6,788 | 11 | 123 | 1.81% |
Trending appearances
| Day | Rank | Stars | Files | Lines | Clones | All files | Code | Health | Commit |
|---|---|---|---|---|---|---|---|---|---|
| Sep 8, 2026 | #6 | 81,925 (+195) | 2,543 | 695,216 | 3,181 | 6.02% | 1.86% | — | 23bd760 |
Want this for your own project? Install jscpd and run jscpd ., or measure it the way the baselines were measured.