---
title: Project
order: 2
description: "A directory magus recognizes as a unit of work (it has a magusfile); the unit of caching, scheduling, and dependency tracking."
tags: [glossary, core-model]
---

# Project

A directory magus recognizes as a unit of work (it has a magusfile); the unit of
caching, scheduling, and dependency tracking.

## Elsewhere

Nx and Visual Studio call a package with its own build configuration a project, declared in
`project.json` or a `.csproj`. In magus the magusfile is what makes a directory a project, and
the package manifest beside it only describes the package.

## Example

`magus ls targets` shows what one project can run; the path names the project.

```sh
magus ls targets libs/xdg
```

## Used in

<!-- BEGIN GLOSSARY USAGE (generated by glossary-usage-generate from the knowledge graph; edit the generator, not this list) -->

In the docs:

- [S2: Project discovery](../benchmarks/build-tools.md#s2-project-discovery)
- [Granularity: project-wide vs per-target](../concepts/cache.md#granularity-project-wide-vs-per-target)
- [needs and glob: functions and patterns, same-project globs](../concepts/dependencies.md#needs-and-glob-functions-and-patterns-same-project-globs)
- [The workflow hardcodes the project list](../concepts/targets/ci.md#the-workflow-hardcodes-the-project-list)
- [Running targets in a provided project](../concepts/workspace/providers.md#running-targets-in-a-provided-project)
- [Project references](../guides/integrations/agents.md#project-references)

In the code (`magus refs <name>` lists every site):

- `dry.Project` (Go)
- `types.Project` (Go)

<!-- END GLOSSARY USAGE -->

## See also

- [Workspace and projects](../concepts/workspace.md)
- [Workspace](workspace.md)
- [Magusfile](magusfile.md)
