A Library is a knowledge base for a project, team, or product area. It holds the Sources Dosu learns from, the Documents it produces, the Topics and Templates that shape and organize that knowledge, and the settings that govern how it all behaves. This page explains what a Library is, why teams use them, and how membership and visibility work.
What a Library is#
A Library is the container for one body of knowledge inside your organization. Everything Dosu does for a project happens within a Library:
- Sources: the connected tools Dosu reads from, such as a GitHub repository or a Slack workspace.
- Documents: the saved knowledge artifacts Dosu generates and your team curates.
- Topics: groupings that organize related Documents within the Library.
- Templates: reusable structures that shape the Documents Dosu generates.
- Settings: the Library name, its visibility, knowledge base behavior, and style guidelines for generated documentation.
Each Library has its own knowledge base and is configured independently from the others. You manage Libraries at Libraries. (Libraries were previously called Spaces.)
Why it matters#
Engineering organizations rarely have one tidy source of truth. Knowledge is spread across many repositories, channels, and teams, and it walks out the door when people leave. Libraries let you scope and govern that knowledge instead of pooling everything together.
- Organize knowledge at scale. A platform team, an infrastructure group, and a product area can each have a Library with the Sources and Documents that belong to them. Onboarding gets faster because new engineers read the Library for their area instead of guessing where things live.
- Control visibility and membership. Each Library can be public, internal, or private, and you decide which Sources belong to it. Private Libraries require explicit membership, so sensitive repositories stay restricted to the team members you choose.
- Cut the cost of coding agents. A Library is also what your agents draw from over MCP and the CLI. Scoping knowledge per project gives agents relevant context instead of the whole company at once.
The same setup scales from a single repository to a whole company, and it works just as well for open source and other public projects.
How it works#
Sources can belong to more than one Library#
A Source is not locked to a single Library. The same GitHub repository can be a member of several Libraries when that knowledge is relevant to more than one team. Dosu tracks Library membership explicitly, so adding or removing a Source from one Library does not change another. Manage Sources from inside a Library at Libraries. For more on connecting tools, see Sources.
Visibility is set per Library#
Visibility is a Library-level setting, not a per-Source one.
- Private Libraries restrict access to members of your organization who have an explicit Library role assignment.
- Internal Libraries are open to everyone in your organization, including people who join later.
- Public Libraries let anyone ask questions and browse documentation without a Dosu account.
Because access follows the Library, every Source connected to a public Library becomes queryable by anyone. Before you make a Library public, check which Sources are attached so a private repository is not exposed by being a member of a public Library. Public Libraries are covered in depth in Public Libraries.
When you make an internal or public Library private, organization members (including admins) lose access unless they have an explicit role assignment. The admin who performs the conversion keeps their access.
Library membership and roles#
Each Library has its own members with roles that control what actions they can perform within that Library. How a member gets access depends on the Library's visibility:
- Open Libraries (internal or public): organization members automatically have access through their organization membership. Organization admins and owners inherit the Admin role; organization members inherit the Member role. No explicit Library invitation is needed.
- Private Libraries: access requires an explicit Library-level role assignment. Organization membership alone, including being an organization admin, does not grant access.
Library roles determine what members can do:
- Owner: full control over the Library's members, Sources, style guidelines, and Documents, including transferring ownership.
- Admin: can manage Library members (except the owner), Sources, style guidelines, and Documents.
- Member: can view and work with the Library's knowledge base, but cannot change settings or manage other members.
Renaming a Library, changing its visibility, and deleting it are organization Owner and Admin actions.
Library membership is managed through the "Members" tab in the Library's interface (the "Admins" tab for internal and public Libraries). For private Libraries, users must be invited or request access, and Library Admins and Owners approve membership and assign roles. For internal and public Libraries, you can assign explicit roles to elevate an organization member, for example making an organization Member a Library Admin. An explicit assignment records who is deliberately responsible for the Library and outlives changes to the user's organization role or a switch to private visibility.
When you perform an action inside a Library—such as connecting a Source, importing a Document, or changing style guidelines—what you can do depends on both your organization role and your role within that specific Library. See Roles and permissions for the full breakdown.
Each Library is configured independently#
A Library carries its own knowledge base settings. These include how Topics are assigned and suggested, the default publish behavior for new Documents, whether Dosu's proposed changes are accepted automatically or held for Review, and style guidelines for generated documentation. An Agent draws on the knowledge in the Libraries it is connected to, so its answers reflect the right project. Creating and configuring Libraries can be done by organization admins and owners, or by users with Library-level Owner or Admin roles.
Larger organizations run several Libraries side by side, one per team or product area, with Sources shared across them where it makes sense. See Working with multiple Libraries for patterns.
Create a Library#
- Go to Libraries and start a new one at Create a Library.
- Give the Library a name and choose its visibility (internal or private). To create a public Library, set the visibility to internal or private during creation, then change it to public in the Library's settings afterward.
- Connect the Sources Dosu should learn from at Connect Sources.
- Adjust knowledge base behavior and style guidelines in the Library's settings whenever you need to.