Paper2Any: a repository whose README now sells a hosted product, with a distribution named dataflow-agent
Turn paper/text/topic into editable research figures, technical route diagrams, and presentation slides.
At a glance
- What is it?
- An Apache-2.0 snapshot of a research figure and slide pipeline whose README opens as an advertisement for a different, hosted office product, and whose pyproject.toml publishes the package under a third name. The legacy documentation is collapsed into one expandable block, and the compose file publishes an unauthenticated API on all interfaces by default.
- Who is it for?
- Paper2Any is worth reading if you want the legacy paper to figure pipeline as a reference implementation, and it is not the product its README headlines. Three things to settle first.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 76 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.
Star history
- OpenDCAI/Paper2Any2,830 ★ · +43
| Repository | 2026-09-11 | 2026-11-14 |
|---|---|---|
| OpenDCAI/Paper2Any | 2.8k | 2.8k |
43 Stars in the last 64 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
The headline product is not the product in the repository
The file begins with a heading that does not match the repository name. The repository is Paper2Any, described in one line as turning paper, text or a topic into editable research figures, technical route diagrams and presentation slides. The README's first heading is Nexus Office, subtitled as the next generation AI office workspace from Paper2Any, and the opening pitch is to give an agent a goal, some files and a few constraints and get back editable PowerPoint, Excel, Word and visual assets in one persistent workspace. Then an important callout says what this repository is: a legacy open source snapshot that preserves the original Apache-2.0 codebase, receives no new product features or architecture updates, and whose hosted successor was rebuilt on a new stack and is not included here. Three names, one repository, and the documentation you are reading is an advertisement for the other two.
Every figure in the README belongs to a service this code does not contain
The middle of the file is a product demonstration, and it is worth being precise about what it demonstrates. A deck rebuilt from a content deck and a template is described as six slides with 168 native objects, 154 text objects and two editable PowerPoint charts. A dataset of 7,585 public records becomes four connected sheets, 228 formulas, KPI cards, a trend chart, a ranking chart and an insight summary. Rough meeting notes become a four page Word document. The visual canvas does interactive segmentation in the browser with a click to cutout that does not consume image generation credits, then recomposes a DNA helix, a transparent globe and a microscope image with consistent lighting. The text says the examples come from real end-to-end runs. The comparison table then says the scope of that product is PowerPoint, Excel, Word and AI visual creation, and that its implementation is not distributed here. The pipeline those runs followed is drawn as five steps:
Goal + source files
-> Agent chooses the Office and visual tools
-> editable PPTX / XLSX / DOCX / PNG
-> structural checks and visual review
-> open, revise, and continue in the same WorkspaceThat loop is the hosted workspace described in one block: the agent picks tools, the deliverables come back editable, and the conversation, execution trace, source files and follow-up edits stay attached to the same workspace so you can revise rather than restart.
The Apache licence covers the snapshot and explicitly not the hosted product
The licence story is stated precisely enough to be useful. A note under the comparison table says the Apache License 2.0 applies only to the code and assets distributed in this repository and does not apply to the hosted implementation. The table repeats it in the source availability row, where the repository column promises Apache-2.0 source code here and the product column says the hosted and commercial implementation is not distributed. So the licence is unambiguous about its own boundary, which is unusual and worth crediting. What it means for a reader is that the code, the documentation and the demo you can run from a clone are one thing, and the thing the README spends most of its space describing is another, licensed separately and delivered as a service.
The distribution is named dataflow-agent, not paper2any
The packaging metadata names a third project. The project table has name set to dataflow-agent with an inline comment giving the install command as pip install dataflow-agent, a version of 0.1.0, a description of an LLM agent component for DataFlow, and a single listed author. The console script is dfa, bound to the CLI entry point of the dataflow_agent package. Its runtime dependencies pin a whole agent stack to exact versions, including langgraph and its checkpoint, prebuilt and SDK packages, four langchain packages, and faiss-cpu at a fixed release, while openai is the one dependency left with a lower bound instead. So a developer looking for the tool the repository is named after will not find a package by that name, and the versions in this manifest are from a specific generation of that ecosystem rather than something that floats.
Six requirements files and a base image argument with no digest
The tree carries six dependency files: a base set, a CUDA set, a paper set, a paper backup set, a system set for Ubuntu and a base set for Windows. The Dockerfile copies four of them, then installs requirements-paper.txt unconditionally and requirements-cu12.txt only when an install argument equals 1, which is off by default. The two files it copies without installing, the base and the paper backup, are presumably pulled in by the paper set, though nothing visible says so. The base image is an argument defaulting to the python 3.11 slim tag, overridable from outside, with no digest pin, while the manifest asks for Python 3.9 or above. The system packages are the other story: ffmpeg, inkscape, libreoffice, poppler utilities, libsndfile and a set of X and GL libraries, plus a wkhtmltox package fetched by URL during the build.
The compose file publishes port 8000 on all interfaces
The service definition is short enough to audit in full. The backend builds from the Dockerfile with two build arguments, one for installing CUDA and one for the Python base image, produces a local image, loads an environment file from the fastapi application directory, and starts uvicorn with the application module and host 0.0.0.0, with the port, the worker count and the log level all overridable through variables. It then publishes that port to the host with a default mapping of 8000 to 8000, mounts eight host directories including outputs, models, data, database, logs and two session stores, and mounts the environment file again as a read only file. A health check curls a health endpoint on localhost every 20 seconds with ten retries and a 30 second start period, and the restart policy is unless stopped. One default deserves attention: 0.0.0.0 with a published port means anything that can route to the machine can reach the API.
Model paths arrive as volume mounts you fill yourself
Nothing in the repository carries the weights the pipeline needs, and the compose file says so by making them paths. One variable points at an RMBG model directory with a default under the models mount, and four more point at a SAM3 checkpoint and a SAM3 vocabulary file, with two of those four duplicated under a second prefix that carries the drawio name in it, each pair defaulting to the same file. A further variable takes a list of external segmentation server URLs and another takes a home directory, both empty by default, which is the hook for running segmentation somewhere other than the container. The practical sequence is therefore: start compose, discover that the models directory the host mounts is empty, obtain the checkpoints yourself, and place them where those four variables point. The duplicated prefixes are the trap, since a configuration that sets one and not the other will have the two views of the same file disagree.
Three product names and a homepage on a tunnel domain
The naming runs through the whole file and it is not settled anywhere. The repository is Paper2Any. The README headline is Nexus Office. The first entry in the legacy news section announces an upgrade to something called Paper to Any Studio, describing a unified Studio workspace, spaces for personal, project and team files, labs apps, online Office previews and credits visibility, and that entry ends mid-sentence. The legacy material itself sits inside a single expandable block labelled as the complete legacy Paper2Any documentation, so its table of contents, news, core features, showcase, drawio section, quick start, project structure, roadmap and contributing notes all collapse into one control rather than reading as sections of a live document. The recorded homepage and every banner in the file point at the same hosted address, on a tunnel domain rather than a permanent one, and a sponsor table credits an API provider for the hosted product's demos.
Editorial conclusion
Paper2Any is worth reading if you want the legacy paper to figure pipeline as a reference implementation, and it is not the product its README headlines. Three things to settle first. The repository states in a callout that it is a legacy snapshot with no new features or architecture updates, and a comparison table places the current product outside the repository entirely, so anything you read about slides, spreadsheets or the visual canvas describes software you cannot get here. The distribution name is dataflow-agent, version 0.1.0, so install that name and not the repository name. And the compose file binds the API to all interfaces on port 8000 by default with an environment file mounted read-only and nothing in the compose definition restricting who can reach it, so do not expose that container as it ships.
Frequently asked questions
Is OpenDCAI/Paper2Any still receiving new features?
The README states in a callout that this repository is a legacy open-source snapshot preserving the original Apache-2.0 codebase, that it no longer receives new product features or architecture updates, and that the hosted successor was rebuilt on a new stack. A comparison table repeats it as legacy snapshot with no new architecture or feature synchronization.
What does the Paper2Any pyproject.toml actually install?
A package named dataflow-agent, version 0.1.0, described as an LLM agent component for DataFlow, with the comment pip install dataflow-agent and a console script called dfa. It requires Python 3.9 or above and pins langgraph, langchain and faiss-cpu to exact versions, with openai as the only dependency using a lower bound.
How do you run the Paper2Any backend?
The compose file builds a service named paper2any-backend from the Dockerfile, defaults the base image to python:3.11-slim, installs the CUDA requirements only when the install argument is 1, mounts eight host directories, mounts the application environment file read-only, and starts uvicorn on host 0.0.0.0 with port 8000 and a curl health check.
Does Paper2Any ship the models it needs?
No. The compose file points one variable at an RMBG model directory and four at a SAM3 checkpoint and vocabulary file, all defaulting to locations under the models volume that the host supplies. An optional variable takes external segmentation server URLs, and there is nothing in the tree that fetches the weights for you.
Which licence covers the Paper2Any demo I see in the README?
Not the Apache one. A note says the Apache License 2.0 applies only to the code and assets distributed in this repository and does not apply to the hosted implementation, and the comparison table repeats that the hosted and commercial implementation is not distributed here.
Is the Paper2Any API safe to expose on a network?
The compose definition starts uvicorn on 0.0.0.0 and publishes port 8000 to the host by default, mounts the application environment file read-only, and configures no authentication and no interface restriction. Nothing in that file limits who can reach the API, so treat the default as local only.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/opendcai-paper2any)Star history chart for your README
[](https://hysenlabs.com/projects/opendcai-paper2any)Was this useful?