MCPcopy
hub / github.com/asdf-vm/asdf

github.com/asdf-vm/asdf @v0.19.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.19.0 ↗
379 symbols 1,663 edges 45 files 146 documented · 39%
README

asdf

Lint Tests

Manage multiple runtime versions with a single CLI tool, extendable via plugins - docs at asdf-vm.com

asdf is a CLI tool that can manage multiple language runtime versions on a per-project basis. It is like gvm, nvm, rbenv & pyenv (and more) all in one! Simply install your language's plugin!

Why use asdf?

  • single CLI for multiple languages
  • consistent commands to manage all your languages
  • single global config keeping defaults in one place
  • single .tool-versions config file per project
  • support for existing config files .node-version, .nvmrc, .ruby-version for easy migration
  • automatically switches runtime versions as you traverse your directories
  • simple plugin system to add support for your language of choice
  • shell completion available for common shells (Bash, Zsh, Fish, Elvish)

Documentation

Please head over to the documentation site for more information!

Contributing

See CONTRIBUTING.md in the repo or the Contributing section on the docs site.

Community & Questions

  • FAQ
  • GitHub Issues GitHub Issues: report a bug or raise a feature request to the asdf core team
  • StackOverflow Tag StackOverflow Tag: see existing Q&A for asdf. Some of the core team watch this tag in addition to our helpful community

Ballad of asdf

Once upon a time there was a programming language

There were many versions of it

So people wrote a version manager for it

To switch between versions for projects

Different, old, new.

Then there came more programming languages

So there came more version managers

And many commands for them

I installed a lot of them

I learnt a lot of commands

Then I said, just one more version manager

Which I will write instead

So, there came another version manager

asdf version manager - https://github.com/asdf-vm/asdf

A version manager so extendable

for which anyone can create a plugin

To support their favourite language

No more installing more version managers

Or learning more commands


This was the mail I wrote to a few friends to tell them about the project. Thanks to @roshanvid for suggesting that this go into the readme
@HashNuke

Extension points exported contracts — how you extend this code

Repoer (Interface)
Repoer is an interface for operations that can be applied to asdf plugins. Right now we only support Git, but in the fut [2 …
internal/git/git.go

Core symbols most depended-on inside this repo

Run
called by 301
internal/execute/execute.go
New
called by 55
internal/plugins/plugins.go
InstallPlugin
called by 33
internal/repotest/repotest.go
LoadConfig
called by 33
internal/config/config.go
Get
called by 28
internal/pluginindex/pluginindex.go
RunCallback
called by 24
internal/plugins/plugins.go
InstallOneVersion
called by 19
internal/versions/versions.go
Error
called by 18
internal/shims/shims.go

Shape

Function 308
Method 46
Struct 23
Class 1
Interface 1

Languages

Go98%
Python2%

Modules by API surface

internal/cli/cli.go44 symbols
internal/plugins/plugins.go28 symbols
internal/shims/shims.go26 symbols
internal/toolversions/toolversions.go21 symbols
internal/config/config.go18 symbols
internal/shims/shims_test.go17 symbols
internal/versions/versions.go16 symbols
internal/plugins/plugins_test.go16 symbols
internal/git/git.go16 symbols
internal/toolversions/toolversions_test.go15 symbols
internal/versions/versions_test.go14 symbols
internal/repotest/repotest.go12 symbols

Dependencies from manifests, versioned

dario.cat/mergov1.0.0 · 1×
github.com/BurntSushi/tomlv1.4.1-0.20240526193 · 1×
github.com/Microsoft/go-winiov0.6.2 · 1×
github.com/ProtonMail/go-cryptov1.1.6 · 1×
github.com/chavacava/garifv0.1.0 · 1×
github.com/cloudflare/circlv1.6.3 · 1×
github.com/cyphar/filepath-securejoinv0.4.1 · 1×
github.com/fatih/structtagv1.2.0 · 1×
github.com/go-git/gcfgv1.5.1-0.20230307220 · 1×

For agents

$ claude mcp add asdf \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact