Where Are the Configuration Files in cloudflare/computer? A Complete Monorepo Guide

The cloudflare/computer repository stores configuration files across root workspace definitions, individual package manifests in packages/*, TypeScript compiler settings, and GitHub Actions workflows under .github/.

The cloudflare/computer project is organized as an npm workspace monorepo, which means configuration is distributed rather than centralized. Instead of a single global config file, each concern is scoped to the specific part of the project it serves, from the root package.json that stitches the workspace together to individual tsconfig.json files per package.

Root Workspace Configuration

The entry point for all cloudflare/computer configuration files is the repository root. Here, the package.json defines the workspace boundaries, top-level scripts, and development dependencies shared across all packages.

Key file: package.json at the repository root.

This file declares the workspace glob pattern (typically packages/*) and orchestrates monorepo-wide commands. When you run npm install at the root, it installs dependencies for every package in the workspace.


# Install all workspace dependencies

npm install

# Build every package that has a build script

npm run build

# Lint, format and run the full test suite

npm run check
npm test

Package-Level Configuration Files

Each package inside the packages/ directory maintains its own configuration files, allowing independent build settings, entry points, and metadata.

Individual package manifests: Each subfolder contains a package.json that defines the specific npm package. The repository includes several packages:

TypeScript configuration: Compiler options and project references are controlled by individual tsconfig.json files located next to each package. For example, packages/dofs/tsconfig.json contains the TypeScript compiler flags and build targets specific to that package.

To build a single package rather than the entire workspace, use the --workspace flag:


# Build only the computerd daemon package

npm run build --workspace @cloudflare/computerd

CI/CD and Automation Configuration

Continuous integration settings live under .github/ and control how the cloudflare/computer repository builds, tests, and publishes across different environments.

Workflow definitions: The file .github/workflows/ci.yml orchestrates the CI matrix, executing build, lint, type-check, and test jobs across the monorepo.

Reusable actions: Shared installation steps and caching logic are abstracted into .github/actions/install/action.yml. This reusable action standardizes Node.js version management and dependency caching across workflow jobs.

You can execute these workflows locally using the act tool for debugging:


# Run the CI matrix locally

act -j package -j example

Development Environment Configuration

For local development of examples and tutorials, the repository provides template environment files rather than committed secrets.

Example environment files: The file examples/tutorial/.env.example serves as a placeholder template for development environment variables. Copy this file and populate it with your local secrets before running tutorials.


# Copy the placeholder and edit the values you need

cp examples/tutorial/.env.example .env

# Then run the tutorial

npm run start --workspace @example/computer-tutorial

Issue and Community Configuration

Repository governance and issue management are configured through GitHub-specific files.

Issue templates: The file .github/ISSUE_TEMPLATE/config.yml controls the default fields, labels, and form fields shown when contributors create new issues, ensuring consistent bug reports and feature requests.

Summary

  • Root configuration: The top-level package.json defines the npm workspace and monorepo-wide scripts.
  • Package configs: Each packages/*/package.json and packages/*/tsconfig.json controls individual package builds and TypeScript compilation.
  • CI/CD setup: GitHub Actions workflows in .github/workflows/ci.yml and reusable actions in .github/actions/install/action.yml handle automation.
  • Local development: examples/tutorial/.env.example provides templates for environment-specific variables.
  • Community management: .github/ISSUE_TEMPLATE/config.yml standardizes issue creation.

Frequently Asked Questions

Where is the main package.json in cloudflare/computer?

The main package.json is located at the repository root. It defines the npm workspace configuration and lists all packages under the packages/* directory as workspace members, enabling monorepo-wide dependency management and script execution.

Does cloudflare/computer have a single global configuration file?

No, the repository follows a distributed configuration pattern. Each package in packages/* maintains its own package.json and tsconfig.json, while shared concerns like CI/CD are configured in .github/. This separation allows packages to evolve independently with specific build requirements.

How do I build only one package in the cloudflare/computer monorepo?

Use npm's workspace filter with the --workspace flag followed by the package name. For example, npm run build --workspace @cloudflare/computerd builds only the computerd daemon without triggering builds for other packages in the workspace.

Where are the TypeScript configuration files located?

Each package has its own TypeScript configuration file. For instance, packages/dofs/tsconfig.json contains compiler options for the dofs package, while other packages like rpc, computer, and computerd have corresponding tsconfig.json files in their respective directories.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →