We are changing how we develop the Octopus C# Client Library by bringing it into our private monorepo alongside Octopus Server. Key changes include:
- Streamlined development: Client library code will be managed alongside Octopus Server, rather than separately.
- Read-Only Repository: The public GitHub repository will become a read-only mirror, with no direct community contributions or pull requests accepted.
- Automated Synchronization: Client changes by Octopus developers will automatically sync to the public repository.
- Resumption of GitHub Releases: We will resume publishing GitHub releases with release notes to keep users informed.
We designed these changes to reduce the friction in the development process, ensure the library stays up-to-date, and enhance the overall quality for our customers.
What is the Octopus C# Client Library?
Octopus Server is built API-first, enabling customers to perform advanced operations tailored to their specific environment and needs.
You can read the API documentation, and we maintain OpenAPI definitions that describe its structure. You can use it in any programming language or system that sends JSON over HTTP. We provide open-source client libraries for C#, TypeScript, and Go, which take care of the HTTP and JSON for you, providing a better developer experience for integrators.
The current state of the library
The best way to use the C# client library is to import the Octopus.Server.Client package from NuGet. We keep it up to date, including adding access to new features we add to Octopus Server.
The library’s home is the public GitHub repository. You can find the source code and information about compiling it there if you want to work with it.
The C# client library is Open Source, under the Apache 2.0 license. You can currently fork it, create pull requests (and view in-progress pull requests raised by software developers at Octopus), and raise issues.
Changes to the way we operate
Internally, we have a private monorepo which includes the Octopus Server codebase, and various other supporting tools.
We will bring the C# client library code into the monorepo, so that Octopus software developers can make changes to Server and Client together in lockstep.
The OctopusClients GitHub repository will become a read-only mirror of the internal monorepo code. When Octopus developers make changes to the client library code in the monorepo, an automated process (using Google’s Open Source Copybara tool) will synchronize them to the public repository.
Why are we making these changes?
We use the Octopus C# client library as part of our internal tooling and test suite for Octopus Server. This helps us ensure it is up to date and functioning correctly.
When Octopus software developers change the Octopus Server API, they must make a corresponding change to the Client codebase. Under the current model with two repositories, this results in two disconnected pull requests, which often must be coordinated. This coordination becomes more difficult if multiple people or teams are making API changes simultaneously, and as the company has grown over the years, it has become an increasing problem.
The friction created by managing two pull requests and the separation of focus across the two repositories had some unintended consequences:
- Sometimes developers forgot to update the client codebase or deferred the work. This results in the client lagging behind the server, making it less useful.
- While we release packages to NuGet every time there is a change (there have been 46 updates so far in 2025), we haven’t created a release in GitHub, nor have we issued any release notes, since 2022.
- The client has not enjoyed the same level of tooling support as the server does internally; for example it currently uses an old version of NUnit for testing, which is overdue for an update.
By bringing the client codebase into the monorepo, we will reduce this friction and be able to provide a higher quality, more up-to-date library for our customers.
Making the public client repository a read-only mirror hinders community contributions. However, the client is stable, and the most recent community pull request was in 2022. Balanced against the benefits of bringing the code into the monorepo, these changes will result in a better overall outcome for the C# client library.
If you have forked the client and have some changes you’d like to see incorporated into the Octopus official client, you can share these with our support team, or via our Community Slack.
What’s Changing
- In-progress pull requests from Octopus developers will no longer be visible in the public repo.
- Developers at Octopus cannot make direct changes to the public repo. It will be a strict mirror.
- We will no longer accept pull requests in the OctopusClients repository.
- We will no longer accept new Issues in the OctopusClients repository. Please send bug reports or enhancement requests to our support team.
- We will resume creating GitHub releases with release notes for the client.
What isn’t Changing
- The OctopusClients repository will remain public
- The code will remain open under the Apache 2.0 license
- You will still be able to fork the repository and make changes
- You can still compile the code directly from the public repository; We have set up internal safety nets to stop potential ties to any non-public tooling that might prevent this.
- The code itself will remain unchanged throughout this process transition
When is this happening?
We have already made the technical changes to move the code and synchronize changes from the monorepo. The policy change around pull request acceptance will take effect from Monday, August 18, 2025. After this date, we will close any existing pull requests and incomplete branches on the public git repository.
Changes to other client libraries
The Go and TypeScript client libraries are unaffected. We have plans to bring them into the monorepo in the future, but we have no specific timelines to share.
If you have any concerns or feedback, please get in touch with our helpful support team.
Happy deployments!
Related posts

Modernizing the Process Editor for greater control over complex processes
Design updates to the Process Editor UI

Azure private networking for Octopus Cloud
Enterprise security meets deployment convenience. Discover how Azure Private Endpoints for Octopus Deploy Cloud eliminate the trade-off between private networking and managed SaaS platforms.

Improved control over package retention
Optimize efficiency with our latest package retention enhancements