{"meta":{"name":"FindSoftware","page":"https://findsoftware.frbit.cloud/uppy-companion/","markdown":"https://findsoftware.frbit.cloud/uppy-companion.md","license":"https://creativecommons.org/licenses/by/4.0/","attribution":"FindSoftware, CC BY 4.0","note":"Attributes are recorded, never scored. An absent field means unknown, never zero and never bad."},"record":{"id":"uppy-companion","name":"Companion","urls":{"home":"https://uppy.io/docs/companion/","repository":"https://github.com/transloadit/uppy","docs":"https://uppy.io/docs/companion/"},"category":["media","auth"],"description":"Open source Node.js server that handles OAuth and streams files from remote sources such as Google Drive and Dropbox into uploads made with Uppy.","maintainer":"Transloadit-II GmbH","maintainerType":"company","firstRelease":2016,"hqCountry":"DE","hosting":["node"],"language":"javascript","runtime":["node"],"runtimeMin":"node 22","contentStore":null,"databases":null,"adminUi":null,"headlessApi":null,"templating":null,"i18n":null,"runsAs":["always-on"],"renderingModes":null,"installMethod":"npm","licenseModel":"open-source","license":"MIT","currentMajor":"7","latestReleaseDate":"2026-10-16T00:00:00.000Z","packagistDownloads":null,"npmWeeklyDownloads":84049,"social":{"forum":"https://community.transloadit.com/"},"checkedAt":"2026-11-03T00:00:00.000Z","addedAt":"2026-11-03T00:00:00.000Z","sources":[{"field":"urls","url":"https://uppy.io/docs/companion/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"urls","url":"https://github.com/transloadit/uppy","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"urls","url":"https://uppy.io/docs/companion/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"maintainer","url":"https://transloadit.com/imprint/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"hqCountry","url":"https://transloadit.com/imprint/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"category","url":"https://github.com/transloadit/uppy/blob/main/packages/%40uppy/companion/README.md","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"category","url":"https://uppy.io/docs/companion/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"language","url":"https://api.github.com/repos/transloadit/uppy","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"runtime","url":"https://uppy.io/docs/companion/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"runtimeMin","url":"https://uppy.io/docs/companion/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"installMethod","url":"https://uppy.io/docs/companion/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"installMethod","url":"https://github.com/transloadit/uppy/blob/main/packages/%40uppy/companion/README.md","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"installMethod","url":"https://uppy.io/docs/companion/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"installMethod","url":"https://uppy.io/docs/companion/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"installMethod","url":"https://github.com/transloadit/uppy/blob/main/packages/%40uppy/companion/KUBERNETES.md","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"runsAs","url":"https://uppy.io/docs/companion/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"license","url":"https://api.github.com/repos/transloadit/uppy","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"licenseModel","url":"https://uppy.io/docs/companion/","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"currentMajor","url":"https://registry.npmjs.org/@uppy/companion/latest","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"latestReleaseDate","url":"https://registry.npmjs.org/@uppy/companion/latest","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"firstRelease","url":"https://api.github.com/repos/transloadit/uppy/commits/v0.0.2","checkedAt":"2026-11-03T00:00:00.000Z"},{"field":"npmWeeklyDownloads","url":"https://api.npmjs.org/downloads/range/2026-10-26:2026-11-01/@uppy/companion","checkedAt":"2026-11-03T00:00:00.000Z"}],"status":"active","ai":"authored"},"prose":"Companion is the server half of the Uppy file uploader. It is a Node.js server that holds the OAuth connections to remote file sources such as Google Drive and Dropbox, and it streams the files it fetches to an upload destination. The Uppy client sends its remote-file requests to Companion, and Companion does not keep the files. It runs as a standalone server or as middleware mounted in an existing Express application, and the [documentation](https://uppy.io/docs/companion/) covers both modes. The package is published on npm as `@uppy/companion` and is built from the Uppy monorepo, which Transloadit maintains.\n\n## Worth knowing\n\nCompanion runs as its own long-running Node.js process, so the host has to keep it running. Several instances can share a Redis server, and the docs describe that setup.\n\nTransloadit also runs a hosted Companion, which requires a Transloadit plan. On the hosted service, the Google Drive provider does not work with the shared OAuth app, so it needs the operator's own Google OAuth app. Windows is not a supported platform."}