outskirts home
Documentation menu

FAQ

On this page

Is outskirts the same tool as Periphery?#

outskirts is Periphery 3.x under a new name, maintained by the community since the original repository was archived in August 2026. It keeps the periphery command, the .periphery.yml file and the // periphery:ignore comments working, see Migrating from Periphery. It is not affiliated with Periphery Pro.

Is it free?#

Yes. outskirts is open source under the MIT license, like Periphery. There is no paid edition.

Should I remove everything outskirts reports?#

Not necessarily. A result is a declaration nothing reaches in the build that was scanned: often a leftover from a refactor, sometimes a feature that was never wired up, an API waiting for its first caller, or code used in a configuration or platform that was not built. outskirts shows you where it is, and you decide. Keep code on purpose with a comment command, or record today's results in a baseline.

Why is a declaration I use reported as unused?#

Usually because the code that uses it was not indexed: a target outside the scanned schemes, a file excluded with --index-exclude, a branch of #if DEBUG, Objective-C code, or a call made by a framework through reflection. See Troubleshooting and Framework conventions and retention.

Why does the scan build my project?#

The analysis reads the index store that the compiler writes during a build. outskirts builds the project once and keeps an incremental build cache, so later scans are faster. If you already have a build, reuse it with --skip-build, see How a scan works.

Does it work on Linux?#

Yes, for Swift Package Manager projects, see Platforms. Xcode projects need macOS.

Does it analyze Objective-C?#

No. Swift declarations used from Objective-C can be kept with --retain-objc-accessible or --retain-objc-annotated, see Objective-C.

Does it change my code?#

No. outskirts only reads your project and reports. It writes only its build cache and the files you ask for (--write-results, --write-baseline, --prune-baseline, and the configuration file of the guided setup).

Does it send data anywhere?#

The update check asks GitHub whether a newer release exists; turn it off with --disable-update-check. Nothing else leaves your machine.

How do I report a bug or contribute?#

Open an issue with a minimal project, or a pull request. The process is described in CONTRIBUTING.md, and what is planned is on the roadmap.

Edit this page on GitHub