Foundry(1)

πŸ“¦
version 1.2.0 Β· 2 versions
, in arch rolling, ubuntu stonking

πŸ’– NAME πŸ’–

foundry β€” a command line development environment, and this page lives in the General Commands Manual, section 1, bestie. It's giving "your whole dev setup, but make it a CLI." 🫢


✨ SYNOPSIS ✨

foundry [OPTION]...  COMMAND [COMMAND-OPTIONS]...

🌸 DESCRIPTION 🌸

okay so, foundry is a development environment and a build system, and it was literally designed for the GNOME desktop. πŸŽ€

It handles all the stuff you'd otherwise be juggling in seventeen terminals at once:

  • project management
  • build pipeline integration
  • SDK management
  • and a whole pile of development tools for building applications and libraries

one binary. main character energy. periodt. πŸ’…


πŸ‘‘ COMMANDS πŸ‘‘

πŸ“ Project Commands

  • init β€” Initialize a brand new project right here in the current directory. Baby's first project fr fr.

πŸ¦‹ Environment Commands

  • enter β€” Enter the environment of the project in the current directory. Step inside, bestie.
  • devenv [-- command] β€” Enter the build environment for the project, similar to how the build pipeline does it. The [-- command] bit lets you hand it a command to run in there.
  • shell β€” Start a shell in the project environment. Just vibing, but inside the project.

🧚 File Commands

  • guess-language FILE β€” Detect the programming language of a file. It just... knows. πŸ”₯
  • grep PATTERN [TARGET...] β€” Grep files using the search and replace mechanism of Foundry. (Not the plain old grep, the Foundry one, okay?)
  • symbol-tree FILE β€” List the symbols in FILE as a tree. So aesthetic. 🌳
  • find-symbol-at FILE LINE LINE_OFFSET β€” Find the symbol at a specific position in FILE, at LINE and LINE_OFFSET β€” and both of those start counting from 1, no cap. Use --tree to print parent symbols as a tree.
  • ctags FILE β€” Index FILE using the ctags service and output the ctags data to stdout.

🌈 Build Commands

  • build β€” Build the current build pipeline. The big one. The moment. ⭐
  • run [-- command] β€” Run a project command in the runtime environment.

πŸ’œ Pipeline Commands

  • pipeline info β€” Show information about the build pipeline.
  • pipeline flags FILE β€” Show the command used to compile a file.
  • pipeline targets β€” List build targets for the build pipeline.
  • pipeline which PROGRAM β€” Find a program in the build pipeline.
  • pipeline invalidate β€” Invalidate the pipeline cache. (Cache said bye. πŸ’€)
  • pipeline link PHASE PROJECT_DIRECTORY LINKED_PHASE β€” Link a workspace to the build pipeline. The stage will run at PHASE of the current pipeline and execute the linked pipeline at LINKED_PHASE.
  • pipeline unlink PHASE PROJECT_DIRECTORY β€” Unlink a workspace from the build pipeline. Removes entries matching PHASE and PROJECT_DIRECTORY from the linked workspaces.

πŸŽ€ Configuration Commands

  • config list β€” List available configurations.
  • config switch CONFIG_ID β€” Change the active configuration.

🌸 SDK Commands

  • sdk list β€” List available SDKs.
  • sdk install SDK_ID β€” Install a specific SDK.
  • sdk switch SDK_ID β€” Change the active SDK for the build pipeline. This will update your current configuration to use the SDK when possible.
  • sdk shell SDK_ID β€” Enter a shell in the SDK environment.
  • sdk which SDK_ID PROGRAM β€” Show where PROGRAM is installed in SDK_ID.

🫢 Dependencies Commands

  • dependencies list β€” List project dependencies.
  • dependencies update β€” Update project dependencies. Heads up though: this does not build the dependencies. Use foundry build to build the dependencies.

✨ Device Commands

  • device list β€” List available devices.
  • device switch DEVICE_ID β€” Switch the current target device.

πŸš€ Deployment Commands

  • deploy β€” Deploy the project to the active device.

πŸ§ͺ Test Commands

  • test list β€” List available unit tests.
  • test run TEST_ID β€” Run a unit test.

πŸ” Search Commands

  • search β€” Use the global search engine to search across the project.
  • show FILE β€” Open FILE in the preferred file browser.

βš™οΈ Settings Commands

  • settings get SCHEMA KEY β€” Get a setting value, applying the priority of settings from the user overrides, project settings, and application-wide settings, in that order.
  • settings set SCHEMA KEY VALUE β€” Set a setting value. Use --global to make the setting the user default. Use --project to make the setting the project default, including for other users who clone the project. Otherwise, the setting applies to the current user for the current project only.

🀫 Secret Commands

  • secret get-api-key HOSTNAME SERVICE β€” Get an API key from the secret store. For example, foundry secret get-api-key gitlab.gnome.org gitlab
  • secret check-expires-at HOSTNAME SERVICE β€” Check when an API key expires for a service on a specific hostname. The expiration date will be printed in local timezone.
  • secret rotate HOSTNAME SERVICE β€” Rotate an API key for a service on a specific hostname. The API key will be rotated using a registered key rotator plugin, and the new key will be stored securely.
  • secret set-api-key HOSTNAME SERVICE API_KEY β€” Store an API key in the secret store.

🩺 Diagnosis Commands

  • diagnose FILE β€” Diagnose issues with FILE

🧡 CONDITIONAL COMMANDS 🧡

The following commands are only available when certain features are enabled at build time:

πŸ™ Git Commands (requires feature-git)

  • clone URI β€” Clone a repository into a new project directory.

πŸ“š Documentation Commands (requires feature-docs)

  • doc bundle install β€” Install a specific documentation bundle.
  • doc bundle list β€” List available documentation bundles.
  • doc query KEYWORD β€” Search for documentation.

πŸ”¨ Forge Commands (requires feature-forge)

  • forge list β€” List available forge integrations.
  • forge issues list β€” List issues from the forge.
  • forge merge-requests list β€” List merge requests from the forge.
  • forge project β€” Show information about the forge project.
  • forge switch FORGE_ID / forge switch --clear β€” Switch the active forge integration. Use --clear to clear the forge setting instead of setting it.
  • forge user β€” Show information about the forge user.

✍️ Text Editing Commands (requires feature-text)

  • grep β€” Search for text patterns in source files.

🧠 LLM Commands (requires feature-llm)

  • llm list-models β€” List available language models.
  • llm list-resources β€” List available resources.
  • llm list-tools β€” List available LLM tools.
  • llm complete MODEL PROMPT β€” Complete text using a language model.

πŸ”Œ MCP Commands (requires feature-mcp)

  • mcp β€” Run MCP server. The server communicates via stdin/stdout using the Model Context Protocol.

πŸ—£οΈ LSP Commands (requires feature-lsp)

  • lsp list β€” List available language server plugins.
  • lsp prefer PLUGIN LANGUAGE β€” Set the preferred LSP for a language.
  • lsp run LANGUAGE β€” Run a language server for a specific language.

🧬 Template Commands (requires feature-templates)

  • template create TEMPLATE_ID|TEMPLATE_FILE β€” Create a new project from a template.
  • template list β€” List available project templates.

🌿 Version Control Commands (requires feature-vcs)

  • vcs blame FILE β€” Show blame information for files.
  • vcs fetch REMOTE β€” Fetch changes from remote repositories.
  • vcs ignored FILE β€” Check whether a file is ignored.
  • vcs list β€” List version control information.
  • vcs list-branches β€” List branches in the repository.
  • vcs list-files β€” List files tracked by version control.
  • vcs list-remotes β€” List remote repositories.
  • vcs list-tags β€” List tags in the repository.
  • vcs log FILE β€” Show commit history for FILE.
  • vcs switch VCS_ID β€” Switch the active version control implementation.

πŸ’… OPTIONS πŸ’…

  • --shared β€” Use shared mode for the command.
  • -h, --help β€” Show help information for the command.

🌟 EXAMPLES 🌟

Initialize a new project:

foundry init

Build the project:

foundry build

Run a project command:

foundry run

Enter the build environment:

foundry devenv

List available SDKs:

foundry sdk list

Install an SDK:

foundry sdk install org.gnome.Sdk/x86_64/master

Start a language server:

foundry lsp run python3

🧩 FEATURES 🧩

Foundry may be compiled with various features disabled or removed. Some commands may be unavailable if the underlying feature was not compiled into your version of Foundry. Not every build gets every toy β€” vibe check your own binary, iykyk. πŸ™ˆ


πŸ”— SEE ALSO πŸ”—

For further information, visit the website https://devsuite.app/


πŸ› BUGS πŸ›

Bug reports can be found and filed at https://gitlab.gnome.org/chergert/foundry/issues


and that's the whole page, bestie!! πŸ’– this was the General Commands Manual entry for Foundry(1), dated July 2026 β€” slay, go build something iconic. βœ¨πŸ¦‹

πŸ“¦ where this page comes from