You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/resources/(resources)/apt.mdx
+17-19Lines changed: 17 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,24 +3,23 @@ title: apt
3
3
description: A reference page for the apt resource
4
4
---
5
5
6
-
The apt resource reference. This resource manages packages on Debian-based Linux systems using the APT (Advanced Package Tool) package manager. APT is the standard package manager for Ubuntu, Debian, Linux Mint, and other Debian-based distributions.
6
+
The apt resource manages packages on Debian-based Linux systems using the APT (Advanced Package Tool) package manager. APT is the standard package manager for Ubuntu, Debian, Linux Mint, and other Debian-based distributions.
7
7
8
8
## Parameters:
9
9
10
-
-**install**: *(array[string | object])* A list of packages to install using apt. Each package can be specified as:
11
-
- A simple string with the package name (e.g., `"curl"`)
12
-
- An object with `name` and optional `version` fields for version-specific installations
10
+
-**install**: *(array[string])* A list of packages to install using apt. Each entry is a string with the package name, optionally including a version constraint using the `name=version` syntax (e.g. `"nodejs=20.*"`). Codify adds packages that are missing and removes packages that are no longer listed.
13
11
14
-
-**update**: *(boolean)* Whether to run `apt-get update` before installing packages to refresh the package index. Defaults to `true`. Set to `false` to skip the update step if you've recently updated your package lists.
12
+
-**update**: *(boolean)* Whether to run `apt-get update` before installing packages to refresh the package index. Defaults to `true`. Set to `false` to skip the update step if you have recently refreshed your package lists.
15
13
16
14
## Example usage:
17
15
18
-
### Installing packages with simple names
16
+
### Install packages by name
19
17
20
18
```json title="codify.jsonc"
21
19
[
22
20
{
23
21
"type": "apt",
22
+
"os": ["linux"],
24
23
"install": [
25
24
"curl",
26
25
"git",
@@ -31,33 +30,31 @@ The apt resource reference. This resource manages packages on Debian-based Linux
31
30
]
32
31
```
33
32
34
-
### Installing specific package versions
33
+
### Pin specific package versions
34
+
35
+
Use the `name=version` syntax to install a particular version. Wildcards (`*`) are supported.
35
36
36
37
```json title="codify.jsonc"
37
38
[
38
39
{
39
40
"type": "apt",
41
+
"os": ["linux"],
40
42
"install": [
41
43
"curl",
42
-
{
43
-
"name": "nginx",
44
-
"version": "1.18.0-0ubuntu1"
45
-
},
46
-
{
47
-
"name": "postgresql",
48
-
"version": "12+214ubuntu0.1"
49
-
}
44
+
"nodejs=20.*",
45
+
"python3=3.12.*"
50
46
]
51
47
}
52
48
]
53
49
```
54
50
55
-
### Skipping the update step
51
+
### Skip the update step
56
52
57
53
```json title="codify.jsonc"
58
54
[
59
55
{
60
56
"type": "apt",
57
+
"os": ["linux"],
61
58
"install": [
62
59
"jq",
63
60
"htop"
@@ -69,7 +66,8 @@ The apt resource reference. This resource manages packages on Debian-based Linux
69
66
70
67
## Notes:
71
68
72
-
- The apt resource requires sudo privileges to install packages. Codify will prompt for your password when needed.
69
+
- The apt resource requires `sudo` privileges to install and remove packages. Codify handles privilege escalation automatically.
73
70
- APT is only available on Debian-based Linux distributions. For Red Hat-based systems, use the [yum](/docs/resources/yum) or [dnf](/docs/resources/dnf) resources instead.
74
-
- Package names must match those available in your configured APT repositories. Use `apt search <package>` to find available packages.
75
-
- When specifying versions, use the exact version string as shown by `apt-cache policy <package>`.
71
+
- The `install` list is stateful — Codify tracks which packages it installed and removes them when they are taken off the list. Packages installed outside of Codify are not affected.
72
+
- Package names must match those available in your configured APT repositories. Use `apt-cache search <package>` to find available packages and `apt-cache policy <package>` to see available versions.
73
+
- The `os` field should be set to `["linux"]` when combining this resource with macOS-only resources in the same configuration file, so Codify only applies it on Linux systems.
Copy file name to clipboardExpand all lines: docs/resources/(resources)/asdf/asdf.mdx
+30-51Lines changed: 30 additions & 51 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,76 +3,62 @@ title: asdf
3
3
description: A reference page for the asdf resource
4
4
---
5
5
6
-
Asdf is an all-in-one tool manager designed to replace individual language specific version managers
7
-
such as pyenv, nvm, rbenv, etc. Asdf operates on a plugin based system
8
-
to support the different tools. A full list of the supported plugins can be found here
9
-
https://github.com/asdf-community. Asdf uses shims similar to pyenv, nvm, etc. and has the
10
-
ability to install a tool globally, within a specific directory, or within a shell.
6
+
Asdf is an all-in-one tool version manager designed to replace individual language-specific version managers such as pyenv, nvm, rbenv, and others. It operates on a plugin-based system to support different tools. A full list of supported plugins can be found at https://github.com/asdf-community.
11
7
12
8
Installing a tool with asdf is a multistep process:
13
9
1. Install asdf
14
-
2. Install the plugin corresponding to the desired language/tool (ex: nodejs, golang, python, etc...)
15
-
`asdf plugin add <name>`
16
-
3. Install the desired version of the language/tool `asdf install <name> <version>`
17
-
4. Load the language/tool to the global or local .tool-versions before it can used
18
-
`asdf local <name> <version>` or `asdf global <name> <version>`. Installing the language/tool
19
-
to locally means it can be used in the current directory or any subdirectories. Installing to global
20
-
means that it can be used anywhere on the system. Tools that are not loaded cannot be used.
21
-
22
-
Additionally, asdf supports using a `.tool-versions` file to install multiple tools.
23
-
Running `asdf install` in a directory with a `.tool-versions` will install the tools listed
24
-
in the file. The installed tools are only be available in that directory or any subdirectories.
10
+
2. Install the plugin for the desired language/tool: `asdf plugin add <name>`
11
+
3. Install the desired version of the tool: `asdf install <name> <version>`
12
+
4. Set the version globally or locally before it can be used: `asdf global <name> <version>` or `asdf local <name> <version>`
25
13
26
-
#### Codify Resources
14
+
Asdf also supports `.tool-versions` files. Running `asdf install` in a directory containing a `.tool-versions` file installs all the tools listed in it. The installed tools are then available in that directory and its subdirectories.
15
+
16
+
#### Platform-specific installation
27
17
28
-
The Codify asdf resources are designed to replicate the same design model as the original tool.
18
+
-**macOS**: Installed via Homebrew (`brew install asdf`). Homebrew must be present.
19
+
-**Linux**: The latest release binary is downloaded directly from GitHub and placed in `~/.local/bin`. Codify also adds the asdf shims directory to `PATH` in your shell RC file.
29
20
30
-
-**asdf:** Installs asdf itself and optionally this resource can install plugins
31
-
(as an added feature to help improve usability)
32
-
-**asdf-plugin:** Installs an asdf plugin and optionally and install specific versions of the
33
-
tool using the plugin (added feature).
34
-
-**asdf-local:** Loads the asdf tool version locally to a directory or multiple directories.
35
-
-**asdf-global:** Loads the asdf tool version globally.
36
-
-**asdf-install:** Installs the `.tool-versions` file in a directory or installs
37
-
a version of a tool. asdf-install will add missing plugins automatically (added feature)
21
+
#### Codify Resources
22
+
23
+
-**asdf** — Installs asdf itself and optionally installs plugins.
24
+
-**[asdf-plugin](/docs/resources/asdf/asdf-plugin)** — Installs an asdf plugin and optionally installs specific versions of the tool.
25
+
-**[asdf-install](/docs/resources/asdf/asdf-install)** — Installs a `.tool-versions` file in a directory, or installs specific versions of a tool. Automatically installs missing plugins.
38
26
39
27
## Parameters:
40
28
41
-
-**plugins**: *(array[string])* An optional array of plugins to install. The plugin names must match
42
-
the names found in https://github.com/asdf-community.
29
+
-**plugins**: *(array[string])* An optional list of asdf plugins to install. The plugin names must match those found at https://github.com/asdf-community. This list is managed statefully — plugins are added when they appear in the list and removed when they are taken off.
43
30
44
31
## Example usage:
45
32
46
-
#### Install asdf:
33
+
### Install asdf
34
+
47
35
```json title="codify.jsonc"
48
36
[
49
37
{
50
-
"type": "asdf"
38
+
"type": "asdf"
51
39
}
52
40
]
53
41
```
54
42
55
-
#### Install asdf and the `nodejs` and `golang` plugins:
43
+
### Install asdf with plugins
44
+
56
45
```json title="codify.jsonc"
57
46
[
58
47
{
59
-
"type": "asdf",
60
-
"plugins": ["nodejs", "golang"]
48
+
"type": "asdf",
49
+
"plugins": ["nodejs", "python"]
61
50
}
62
51
]
63
52
```
64
53
65
-
#### A full config for installing a .tool-versions file
54
+
###Install a `.tool-versions` file
66
55
67
-
The `asdf-install` resource will automatically install missing plugins if they exist in a
68
-
`.tool-versions` file. This is additional functionality added by Codify. The config below
69
-
installs asdf, installs the necessary plugins and then installs the tool versions specified
70
-
in `~/path/to/dir/.tool-versions`.
56
+
The `asdf-install` resource automatically installs missing plugins when using the `directory` parameter. The config below installs asdf and then installs all tool versions specified in `~/path/to/dir/.tool-versions`.
71
57
72
58
```json title="codify.jsonc"
73
59
[
74
60
{
75
-
"type": "asdf"
61
+
"type": "asdf"
76
62
},
77
63
{
78
64
"type": "asdf-install",
@@ -81,27 +67,20 @@ in `~/path/to/dir/.tool-versions`.
81
67
]
82
68
```
83
69
84
-
#### Installing nodejs globally
70
+
###Install and version-pin a tool
85
71
86
-
Asdf provides the `latest` keyword shortcut. Other-wise fully
87
-
qualified version (down to the patch level) must be used. This config will install asdf,
88
-
the nodejs plugin, install node versions `latest` and `20.18.0`, and then load
89
-
`20.18.0` as the globally available version.
72
+
Asdf provides the `latest` keyword as a shortcut. Otherwise a fully qualified version (down to the patch level) must be used. The config below installs asdf, the Node.js plugin, and two Node.js versions.
description: A reference page for the ollama resource
4
+
---
5
+
6
+
The ollama resource installs [Ollama](https://ollama.com/), a runtime for running large language models locally. On macOS it is installed via Homebrew and started as a background service; on Linux the official install script is used, which registers a systemd service automatically.
7
+
8
+
## Parameters:
9
+
10
+
-**models**: *(array[string])* AI models to pull and keep installed. Model names match those listed in the [Ollama library](https://ollama.com/library) (e.g. `"llama3.2"`, `"mistral"`, `"qwen2.5-coder:7b"`). Codify adds models that are missing and removes models that are no longer listed.
- On macOS, Homebrew must be installed before applying the ollama resource. The [homebrew](/docs/resources/homebrew) resource can install it.
49
+
- On Linux, the official install script (`https://ollama.com/install.sh`) requires `curl` and `sudo` privileges. The script creates an `ollama` system user and registers a systemd service.
50
+
- Models can be large (several gigabytes each). Make sure you have sufficient disk space before adding them to your configuration.
51
+
- To see available model names and tags, visit [ollama.com/library](https://ollama.com/library) or run `ollama list` after installation.
52
+
- Removing the ollama resource stops and uninstalls the Ollama binary but does **not** automatically remove downloaded model data (stored in `~/.ollama` on macOS or `/usr/share/ollama` on Linux for system-level data).
The uv resource installs [uv](https://github.com/astral-sh/uv), an extremely fast Python package and project manager from [Astral](https://astral.sh/). uv can replace pip, pip-tools, pyenv, virtualenv, and Poetry in a single tool. On macOS it is installed via Homebrew; on Linux the official install script is used.
7
+
8
+
## Parameters:
9
+
10
+
-**pythonVersions**: *(array[string])* Python versions to install via `uv python install` (e.g. `["3.12", "3.11"]`). Codify adds missing versions and removes versions that are no longer listed.
11
+
12
+
-**global**: *(string)* The Python version to set as the global default. This runs `uv python pin --global <version>` with the `--default` flag, which exposes `python` and `python3` on PATH as shims pointing to the selected version.
13
+
14
+
-**tools**: *(array[string])* Global CLI tools to install via `uv tool install` (e.g. `["ruff", "black", "httpie"]`). Each tool is installed into its own isolated environment and exposed on PATH. Codify adds missing tools and removes tools that are no longer listed.
15
+
16
+
## Example usage:
17
+
18
+
### Install uv with Python versions and set a global default
19
+
20
+
```json title="codify.jsonc"
21
+
[
22
+
{
23
+
"type": "uv",
24
+
"pythonVersions": ["3.12", "3.11"],
25
+
"global": "3.12"
26
+
}
27
+
]
28
+
```
29
+
30
+
### Install uv with Python and global CLI tools
31
+
32
+
```json title="codify.jsonc"
33
+
[
34
+
{
35
+
"type": "uv",
36
+
"pythonVersions": ["3.12"],
37
+
"global": "3.12",
38
+
"tools": ["ruff", "black", "httpie"]
39
+
}
40
+
]
41
+
```
42
+
43
+
### Install uv only (no Python versions)
44
+
45
+
```json title="codify.jsonc"
46
+
[
47
+
{
48
+
"type": "uv"
49
+
}
50
+
]
51
+
```
52
+
53
+
## Notes:
54
+
55
+
- On macOS, Homebrew must be installed before applying the uv resource. The [homebrew](/docs/resources/homebrew) resource can install it.
56
+
- On Linux, the official install script places the `uv` and `uvx` binaries in `~/.local/bin`. Codify adds this directory to `PATH` in your shell RC file automatically.
57
+
- The `global` parameter requires the version to be installed (either via `pythonVersions` or already present on the system).
58
+
- Tools installed via `tools` are managed as a stateful list — tools present in your configuration are added; tools removed from the list are uninstalled.
59
+
- uv is compatible with existing `pyproject.toml`, `requirements.txt`, and `pip` workflows. It does not conflict with pip or virtualenv.
0 commit comments