MCPcopy Index your code
hub / github.com/brocode/fw

github.com/brocode/fw @v2.21.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.21.0 ↗ · + Follow
132 symbols 318 edges 22 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

fw

Why fw?

With fw you have a configuration describing your workspace. It takes care of cloning projects and can run commands across your entire workspace. You can start working on any project quickly, even if it\'s not in your flat structured workspace (better than CDPATH!). It also \"sets up\" your environment when you start working on a project (compile stuff, run make, activate virtualenv or nvm, fire up sbt shell, etc.)

[Here\'s]{.spurious-link target="doc/example_config"} an example configuration that should be easy to grasp.

The default configuration location is located under your system\'s config directory as described here. That is :

  • Linux: ~/.config/fw
  • MacOS: $HOME/Library/Application Support/fw
  • Windows: {FOLDERID_RoamingAppData}\fw

The location and can be overridden by setting FW_CONFIG_DIR.

Per default projects are cloned into ${settings.workspace}/${project.name} but you can override that by setting an override_path attribute as seen in the example configuration.

What this is, and isn\'t

fw is a tool I wrote to do my bidding. It might not work for you if your workflow differs a lot from mine or might require adjustments. Here are the assumptions:

  • only git repositories
  • only ssh clone (easily resolveable by putting more work in the git2 bindings usage)
  • ssh-agent based authentication

If you can live with all of the above, you get:

  • workspace persistence (I can rm -rf my entire workspace and have it back in a few minutes)
  • ZERO overhead project switching with the workon function (need to activate nvm? Run sbt? Set LCD brightness to 100%? fw will do all that for you)
  • zsh completions on the project names for workon
  • generate projectile configuration for all your project (no need to projectile-add-known-project every time you clone some shit, it will just work)

Installation

Usage

Core symbols most depended-on inside this repo

actual_path_to_project
called by 12
src/config/mod.rs
write_project
called by 11
src/config/mod.rs
a_config
called by 10
src/config/mod.rs
resolve_after_workon
called by 7
src/config/mod.rs
resolve_after_clone
called by 6
src/config/mod.rs
fw_path
called by 6
src/config/path.rs
ensure_base_exists
called by 5
src/config/path.rs
repo_name_from_url
called by 4
src/git/mod.rs

Shape

Function 92
Method 22
Class 16
Enum 2

Languages

Rust100%

Modules by API surface

src/config/mod.rs27 symbols
src/ws/github/mod.rs12 symbols
src/git/mod.rs12 symbols
src/setup/mod.rs10 symbols
src/tag/mod.rs9 symbols
src/project/mod.rs9 symbols
src/config/path.rs7 symbols
src/spawn/mod.rs6 symbols
src/sync/mod.rs5 symbols
src/projectile/mod.rs5 symbols
src/errors/mod.rs5 symbols
src/config/settings.rs5 symbols

For agents

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

⬇ download graph artifact