# How we set up our computers for working on dbt projects

**URL:** https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243
**Category:** Archive
**Created:** [February 15, 2019, 5:02pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243 "2019-02-15T17:02:38Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![claire](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/claire/32/522_2.png) [@claire](https://discourse.getdbt.com/u/claire)
#### Post date: [February 15, 2019, 5:02pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/1 "2019-02-15T17:02:38Z")

</div>

At Fishtown Analytics, we spend _a lot_ of our time working on dbt projects. As such, we’ve settled on our favorite way to set up our computers to make working on dbt projects as easy as possible.

Note that we are all on MacBooks – if you’re on a PC, some parts of this may not apply to you!

This article won’t cover installing dbt – read [these instructions](https://docs.getdbt.com/docs/installation) if that’s what you’re looking for.

> ℹ This article was originally written in Feb 2019. At the time, Atom was our code editor of choice, and this article reflects that. These days, I suspect that VSCode is the editor of choice for folks using the dbt CLI and a code editor. We haven’t updated this article to reflect that since most of our team now defaults to using the dbt Cloud IDE.

## Terminal

We use [iTerm2](https://www.iterm2.com/) instead of the default Mac Terminal – you can definitely use the default Mac Terminal, but using iTerm will get you more cred with your engineering team 😉.

We also customize our terminals so that they work best for us, but this is definitely a matter of personal preference. If you’re new to using the terminal, I suggest asking to pair with an engineer at your organization to learn how they set up their terminal.

Here are some things that we find useful in customizing your terminal:

- 🚨 **Install the dbt-completion script** 🚨 : See instructions [here](https://github.com/fishtown-analytics/dbt-completion.bash)
- **Install the git-completion script:** See instructions [here](https://stackoverflow.com/questions/12399002/how-to-configure-git-bash-command-line-completion).
- **Use a dark theme:** See instructions [here](https://iterm2colorschemes.com/), I like Dracula and Adventure Time! (I use these themes wherever I can!)
- **Change your terminal prompt:** I like to have information about the status of my git repo – relevant script [here](https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh). Here’s my (quite verbose!) bash prompt:  
 ![57%20AM](https://us1.discourse-cdn.com/flex020/uploads/getdbt/original/1X/aa1b15c262af46f6bbd11ca3b0adbdadf6f39e52.png)
- **Change the default code editor:** Since I use Atom, I added this to my `.bashrc` file (which is called by my `.bash_profile` file). It stops me from having to remember that `:wq` is the way to save and close a Vim window.

```bash
export EDITOR="atom --wait"

```

## Code editor

We use [Atom](https://atom.io/) as our code editor – our specific setup is below.

You should use whichever code editor you like best/are most comfortable in – other popular alternatives include:

- Open-source:
  - [VSCode](https://code.visualstudio.com/)

- Paid:
  - [Sublime](https://www.sublimetext.com/)

There are a few things we like to do with our editors:

- Ensure that Jinja-flavored SQL is highlighted correctly
- Add useful Jinja and dbt-specific snippets
- Show files that are not included in version control (e.g. compiled files in the `target/` directory) – some editors hide these by default.
- Grey out the text of files that have compiled code in them, to help prevent you from editing compiled SQL (as opposed to your actual model).

**Atom setup**

- Ensure that compiled files are shown in the tree view (they are hidden by default since they are included in `.gitignore` 🙅‍♀️). `Settings` \> `Packages` \> `tree-view` \> Untick `Hide VCS Ignored Files`
- Install the [atom-dbt](https://atom.io/packages/atom-dbt) package. This package provides highlighting for jinja-flavored SQL, Markdown and YAML, as well as adds a number of dbt-specific snippets.
- Install the [file-types](https://atom.io/packages/file-types) package, and configure it to render compiled SQL as plain text (useful if you ever find yourself editing compiled SQL!). Add this to your `config.cson` file:

```cson
"*": # Be sure to put "file-types" under the "*" key 
  "file-types":
    " **/target/**": "text.plain"

```

- Turn on the indent guide (especially useful for yaml files). `Settings` \> `Editor` \> `Show Indent Guide`  
 ![51%20PM](https://us1.discourse-cdn.com/flex020/uploads/getdbt/original/1X/be0aecc36ef477e62ba2d418d9e95ee0ee4ae341.png)
- Install the [rainbow-csv](https://atom.io/packages/rainbow-csv) package (especially useful for highlighting seeds)

**VSCode setup**

- Install the [better-jinja](https://marketplace.visualstudio.com/items?itemName=samuelcolvin.jinjahtml) extension
- Add some file association settings to your `settings.json` file (the `target` file association greys out compiled SQL).

```json
{
   "some_setting": custom_value,
   ...
   "files.associations":{  
      "*.sql":"jinja-sql",
      " **/target/**":""
   }
}

```

- Install the [rainbow-csv](https://marketplace.visualstudio.com/items?itemName=mechatroner.rainbow-csv) extension (especially useful for highlighting seeds)
- Manually install the `vscode-dbt` [extension](https://github.com/bastienboutonnet/vscode-dbt) (hopefully this gets onto the marketplace soon!)

**Vim setup**  
One of our community members (@jesse) has a [repo](https://github.com/jgillies/vim-dbt/blob/master/dbt.snippets) for how he sets up his Vim.  
If you want to grey out your compiled SQL, add this following to your `.vimrc` file:

```auto
au BufNewFile,BufRead */target/*.sql set ft=text

```

## SQL query runner

Having a query runner is useful when you want to see what the results of your `SELECT` SQL statements are, or when running statements outside of dbt (e.g. creating new users). We use a query runner when building models (often writing queries in pure SQL first, and then moving them over to dbt), inspecting the results of a model, and debugging things that don’t look right!

Again, we’ve gone for the open source option here, of [SQL Workbench](https://www.sql-workbench.eu/). Personally, I don’t love this application, and would welcome any feedback in the comments if you have strong opinions on an alternative. Popular alternatives include:

- Open-source:
  - [DBeaver](https://dbeaver.io/)

- Paid:
  - [TablePlus](https://tableplus.io/): Hat tip to @matt for this one
  - [DataGrip](https://www.jetbrains.com/datagrip/)
  - [Postico](https://eggerapps.at/postico/): Only compatible with Postgres and Redshift. There is a free tier on this product too.

If you’re using Snowflake or BigQuery, both provide pretty good web UIs for running queries, so you may not need a query runner on your computer!

## SQL formatting/linting

A SQL formatter will format your SQL to match a particular coding convention, while a linter will return errors when your SQL doesn’t match those conventions (rather than updating the code).

While there are a few SQL formatters and linters available, so far none of them play nicely with jinja-flavored SQL, so won’t work with your dbt project.

So for now, we just format by hand! [Here](https://github.com/fishtown-analytics/corp/blob/master/dbt_coding_conventions.md) is our style guide – it’s a good idea to have one for your organization too!

## Global `.gitignore`

This was something I didn’t know for a really long time!  
You can set a global `.gitignore` for your computer, which means you’ll never accidentally commit system files like those pesky `.DS_Store` files. [This tutorial](https://gist.github.com/subfuzion/db7f57fff2fb6998a16c) walks through the steps involved.

---

<div class="post-metadata">

### Author: ![MartinGuindon](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/martinguindon/32/260_2.png) [@MartinGuindon](https://discourse.getdbt.com/u/MartinGuindon)
#### Post date: [February 15, 2019, 8:07pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/2 "2019-02-15T20:07:52Z")

</div>

Great write-up!

I would suggest exploring using ZSH as your shell as an alternative to Bash, along with the Prezto extension.

Prezto provides a lot of awesome integrations with many of the tools we use on a daily basis (git, conda, etc.) and even shortcuts to better integrate the shell with OS X. For instance, the OS X module of Prezto adds a new shortcut called “cdf” which will open in your terminal the last folder you have opened in Finder.

I’d recommend installing ZSH using Homebrew (rather than using the one that comes with OS X as its a few versions behind), and then installing Prezto:

> **[sorin-ionescu/prezto](https://github.com/sorin-ionescu/prezto)**
>
> The configuration framework for Zsh. Contribute to sorin-ionescu/prezto development by creating an account on GitHub.

The key is to check each module, and read the different configuration options. It takes a bit of time, but it’s worth it! [The modules are here](https://github.com/sorin-ionescu/prezto/tree/master/modules), each with a README on usage/benefits.

Look at this beautiful shell, with clear indicators for git: which branch, and the status of that branch :

- Arrow pointing up means I am ahead
- The 6 pointed star means I have modified files
- The square means I have untracked changes

The (base) is an indication of which Python/conda environment I’m in.

 ![image](https://us1.discourse-cdn.com/flex020/uploads/getdbt/original/1X/2aed260b76ec56e2bb3698eda599152281a39e45.png)

Prezto is as great as dbt, which means its pretty awesome 😍

---

<div class="post-metadata">

### Author: ![marcelvv](https://avatars.discourse-cdn.com/v4/letter/m/f07891/32.png) [@marcelvv](https://discourse.getdbt.com/u/marcelvv)
#### Post date: [March 11, 2019, 10:44pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/3 "2019-03-11T22:44:24Z")

</div>

For you VSCode people, I like to use the PostgreSQL add-in by Chris Kolkman.  
Brings SQL into VSCode.

- Password in MacOS keychain
- Default to the database of your choice

Looking forward to DBT snippets!

---

<div class="post-metadata">

### Author: ![eli\_kastelein](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/eli_kastelein/32/148_2.png) [@eli\_kastelein](https://discourse.getdbt.com/u/eli_kastelein)
#### Post date: [May 23, 2019, 7:26pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/4 "2019-05-23T19:26:38Z")

</div>

On GitLab’s Data Team we were inspired by this post from @claire to make an **onboarding script** that incorporates many of the mentioned tools and techniques. So now as part of our onboarding, we ask new hires to run the script right when they get access to their new machine. This leads to 2 main benefits:  
**1. Time is Saved.** A lot of the tasks in the script would need to be done on a new machine anyways (e.g. installing dbt). By putting all of the scripts together in one place, we can save new team members from having to do all of these steps individually. When a new hire has all of their dev software installed and configured “out of the box”, they can theoretically start contributing to our projects immediately.  
**2. Consistency.** Because each member of the team has a similar setup on their local machine, collaboration within our data team becomes much easier. When I recently ran into errors running dbt tests locally, @emilie was able to diagnose my problems quickly, in part because she knew that our local environments were nearly identical. On other teams that I’ve been on in the past, these collaborative debugging sessions would always cause headaches because each individual had their own unique dev environment (ex: mismatching python installations, different path variables).

The nice thing about our script is that it’s meant to be a set of **guidelines, not rules**. For example, the script installs Atom as the default code editor, but I’m personally more productive in VS Code. After running the script, I still installed VS Code and set it as my default, and that was totally okay. The benefits of everybody using the _exact_ same stack are outweighed by the productivity gains that come from people using the tools they’re the most productive in, so everyone is allowed to customize their environment how they see fit.

Since GitLab is open source, both the [script](https://gitlab.com/gitlab-data/analytics/blob/master/admin/onboarding_script.sh) and our [onboarding issue template](https://gitlab.com/gitlab-data/analytics/blob/master/.gitlab/issue_templates/onboarding.md) are available to the public. We’d love to incorporate any feedback into improving these. Thanks to Claire for the inspiration!

---

<div class="post-metadata">

### Author: ![jars](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/jars/32/127_2.png) [@jars](https://discourse.getdbt.com/u/jars)
#### Post date: [July 15, 2019, 11:46pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/5 "2019-07-15T23:46:12Z")

</div>

Here’s a little Atom tip to optimize your workflow.

To “jump” directly from a model to it’s compiled equivalent:

1. Install the `related` plugin ([https://atom.io/packages/related](https://atom.io/packages/related))
2. Navigate to related patterns config (`Packages` -\> `related` -\> `Edit Related Patterns`)
3. Paste the following at the bottom:

```auto
'^(.*[/\\\\])?(.+)(\\.sql)$': [
    ' **/compiled/** /$2.sql'
]

```

1. From inside any model, just press `ctrl+shift+R` and hit return.

2. Bonus from @joshtemple: Open your `related` Package settings and check the box “Open Single Item Automatically” to prevent need for redundant return key!

No more drilling-down-down-down!

---

<div class="post-metadata">

### Author: ![sean-rose](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/sean-rose/32/222_2.png) [@sean-rose](https://discourse.getdbt.com/u/sean-rose)
#### Post date: [September 13, 2019, 4:29pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/6 "2019-09-13T16:29:13Z")

</div>

> ```auto
> '^(.*[/\\\\])?(.+)(\\.sql)': [
> ' **/compiled/** /$2.sql'
> ]
> 
> ```

A variation on this which allows you to jump back and forth between the model and compiled SQL:

```auto
'^(.*/)?models/(.*/)?(.+\\.sql)$': [
    ' **/compiled/** /$3'
]
'^(.*/)?compiled/(.*/)?(.+\\.sql)$': [
    ' **/models/** /$3'
]

```

---

<div class="post-metadata">

### Author: ![hui-zheng](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/hui-zheng/32/44_2.png) [@hui-zheng](https://discourse.getdbt.com/u/hui-zheng)
#### Post date: [November 4, 2019, 11:08pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/7 "2019-11-04T23:08:48Z")

</div>

If someones wants to get to the actually run SQL instead of Compiled SQL.

```
# To "jump" between source / compiled / build files

'^(.*/)?models/(.*/)?(.+\\.sql)$': [
    ' **/compiled/** /$3'
]
'^(.*/)?compiled/(.*/)?(.+\\.sql)$': [
    ' **/run/** /$3'
]

'^(.*/)?run/(.*/)?(.+\\.sql)$': [
    ' **/models/** /$3'
]
```

---

<div class="post-metadata">

### Author: ![kmccallum](https://avatars.discourse-cdn.com/v4/letter/k/5fc32e/32.png) [@kmccallum](https://discourse.getdbt.com/u/kmccallum)
#### Post date: [November 14, 2019, 6:53pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/8 "2019-11-14T18:53:13Z")

</div>

Are there any plans to add something like a ‘dbt lint’ command that would address the issues with jinja? I was thinking of trying to adapt an existing SQL linter but figured I should check to see if there is anything already in the works first.

---

<div class="post-metadata">

### Author: ![claire](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/claire/32/522_2.png) [@claire](https://discourse.getdbt.com/u/claire)
#### Post date: [November 18, 2019, 7:44pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/9 "2019-11-18T19:44:40Z")

</div>

Not at present! I know that Alan from [Tails.com](http://Tails.com) is working on a linter: [https://github.com/alanmcruickshank/sqlfluff](https://github.com/alanmcruickshank/sqlfluff)

---

<div class="post-metadata">

### Author: ![tmurphy](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/tmurphy/32/43_2.png) [@tmurphy](https://discourse.getdbt.com/u/tmurphy)
#### Post date: [January 7, 2020, 6:53pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/10 "2020-01-07T18:53:53Z")

</div>

I was able to get [https://marketplace.visualstudio.com/items?itemName=eamodio.find-related](https://marketplace.visualstudio.com/items?itemName=eamodio.find-related) working for VSCode using the following ruleset (hat tip to @hui-zheng b/c these are direct copy and past from him).

```
    "findrelated.rulesets": [
    {
        "name": "sql",
        "rules": [
            {
                "pattern": "^(.*/)?models/(.*/)?(.+\\.sql)$",
                "locators": [
                    " **/compiled/** /$3"
                ]
            },
            {
                "pattern": "^(.*/)?compiled/(.*/)?(.+\\.sql)$",
                "locators": [
                    " **/run/** /$3"
                ]
            },
            {
                "pattern": "^(.*/)?run/(.*/)?(.+\\.sql)$",
                "locators": [
                    " **/models/** /$3"
                ]
            }
        ]
    }
],

```

Also, [https://github.com/bastienboutonnet/vscode-dbt](https://github.com/bastienboutonnet/vscode-dbt) works great for vscode autocomplete.

---

<div class="post-metadata">

### Author: ![vish](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/vish/32/371_2.png) [@vish](https://discourse.getdbt.com/u/vish)
#### Post date: [March 27, 2020, 6:43am UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/11 "2020-03-27T06:43:43Z")

</div>

@hui-zheng @sean-rose @jars , so what’s your workflow?  
work in atom on a query that has jinja,  
then drop to shell and `dbt compile` and then go back to Atom, and jump to the compiled?

---

<div class="post-metadata">

### Author: ![paul](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/paul/32/393_2.png) [@paul](https://discourse.getdbt.com/u/paul)
#### Post date: [May 4, 2020, 7:17pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/12 "2020-05-04T19:17:10Z")

</div>

A bit of an update on the comment from @eli_kastelein and @emilie at GitLab, as MacOS now have zsh as their default shell we decided to update our onboarding scripts to use zsh. There were more compatibility issues than we were expecting, and quite a few of the old tools just did not work any more, however we were able to find some great plugins as replacements for all of the old tools, so this script now works providing exactly the same functionality as the old one, in a shiny new zsh shell.

Here is the new [zsh script](https://gitlab.com/gitlab-data/analytics/blob/master/admin/onboarding_script.zsh), in case anyone would like to migrate over to zsh with us.

Something which helped make the migration quite a bit less painful was finding [oh-my-zsh](https://github.com/ohmyzsh/ohmyzsh) (a plugin manager for zsh), which includes some great themes and tools, and made installing new tools much easier. There are quite a few plugin manager options available at the moment so if you are using zsh, would really like to hear, are you using a plugin mananger and if so, which one?

---

<div class="post-metadata">

### Author: ![mdesmet](https://avatars.discourse-cdn.com/v4/letter/m/47e85d/32.png) [@mdesmet](https://discourse.getdbt.com/u/mdesmet)
#### Post date: [January 11, 2021, 8:11am UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/13 "2021-01-11T08:11:58Z")

</div>

Hey folks,

If you are using vscode. Well it could even be a reason to start using vscode.

I suggest to install our extension: [dbt Power User - Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=innoverio.vscode-dbt-power-user)

Main features:

- Go to the definition of any models, macro’s and sources.
- Autocompletion of models, macros and sources
- Ability to run a model through the play button of the document
- dbt install / update
- dbt logs viewer (force tailing)

![Autocomplete model]()

If you have any feature requests or bugs, just let us know on [Issues · innoverio/vscode-dbt-power-user · GitHub](https://github.com/innoverio/vscode-dbt-power-user/issues)

---

<div class="post-metadata">

### Author: ![gclunies](https://sea2.discourse-cdn.com/flex020/user_avatar/discourse.getdbt.com/gclunies/32/591_2.png) [@gclunies](https://discourse.getdbt.com/u/gclunies)
#### Post date: [January 15, 2021, 6:45pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/14 "2021-01-15T18:45:19Z")

</div>

@mdesmet this is AWESOME! 🤯

---

<div class="post-metadata">

### Author: ![pbower](https://avatars.discourse-cdn.com/v4/letter/p/ce7236/32.png) [@pbower](https://discourse.getdbt.com/u/pbower)
#### Post date: [February 15, 2021, 6:42am UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/16 "2021-02-15T06:42:11Z")

</div>

Hi there,

I use SQLTools in VSCode for SQL.

But, be careful setting up your SSL settings and do it via your profile, not the default form which is dangerous.

Love the ease of use though.

---

<div class="post-metadata">

### Author: ![Kimcha](https://avatars.discourse-cdn.com/v4/letter/k/94ad74/32.png) [@Kimcha](https://discourse.getdbt.com/u/Kimcha)
#### Post date: [February 18, 2021, 2:23pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/17 "2021-02-18T14:23:05Z")

</div>

This is great, thank you.

In addition to that I also had to enable the rule set by adding the following to my vscode config…

```auto
    "findrelated.applyRulesets": [
        "sql"
    ]

```

---

<div class="post-metadata">

### Author: ![data\_ders](https://avatars.discourse-cdn.com/v4/letter/d/ecccb3/32.png) [@data\_ders](https://discourse.getdbt.com/u/data_ders)
#### Post date: [February 25, 2021, 12:27am UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/18 "2021-02-25T00:27:45Z")

</div>

Also want to add the for VSCode folks who use anaconda environments or virtual environments to contain the dbt package, a long-awaited update to the VSCode Python extension is coming next month. Now the Python extension will auto activate along with your chosen python environment. You just need to have a requirements.txt in the repo.

> <https://github.com/microsoft/vscode-python/issues/4765#issuecomment-785242341>
>
> Goal - Lets not wait for the user to open a python file to activate the extension
> If the user has some...

---

<div class="post-metadata">

### Author: ![Kimcha](https://avatars.discourse-cdn.com/v4/letter/k/94ad74/32.png) [@Kimcha](https://discourse.getdbt.com/u/Kimcha)
#### Post date: [March 2, 2021, 11:55am UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/19 "2021-03-02T11:55:17Z")

</div>

The author of the DBT poweruser VSCode extension has just added `Show compiled SQL` and `Show run SQL` commands.

[https://marketplace.visualstudio.com/items?itemName=innoverio.vscode-dbt-power-user&ssr=false](https://marketplace.visualstudio.com/items?itemName=innoverio.vscode-dbt-power-user&ssr=false)

I have mapped them to the `alt+c` and `alt+r` shortcuts and can now quickly see the compiled SQL.

Highly recommended!

---

<div class="post-metadata">

### Author: ![data\_ders](https://avatars.discourse-cdn.com/v4/letter/d/ecccb3/32.png) [@data\_ders](https://discourse.getdbt.com/u/data_ders)
#### Post date: [November 3, 2021, 10:56pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/20 "2021-11-03T22:56:51Z")

</div>

I wrote a set up guide specifc guide to VSCode. I’d love y’all’s feedback! Huge kudos obvs to Claire for the original post.

> [@Setting up VSCode to use with the dbt CLI](https://discourse.getdbt.com/t/setting-up-vscode-to-use-with-the-dbt-cli/3291):
>
> information_source For the most-up-to-date version, you might want to go here: [https://dbt-msft.github.io/dbt-msft-docs/docs/guides/vscode\_setup/](https://dbt-msft.github.io/dbt-msft-docs/docs/guides/vscode_setup/)Intro When our team first started using the dbt CLI, we started with Claire’s well-loved discourse post, [How we set up our computers for working on dbt project](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243). The post details how the dbt team uses Atom and iTerm 2 on macOS for an improved workflow. Many folks commented on how they acheived similar productivity using VSCode. I thought I’d conso…

---

<div class="post-metadata">

### Author: ![Kimcha](https://avatars.discourse-cdn.com/v4/letter/k/94ad74/32.png) [@Kimcha](https://discourse.getdbt.com/u/Kimcha)
#### Post date: [January 31, 2022, 2:30pm UTC](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243/21 "2022-01-31T14:30:51Z")

</div>

Hello everyone, I just came up with a way to search for dbt models interactively directly in the terminal.

Here’s a quick demo:  
 ![fzf-dbt_demo](https://us1.discourse-cdn.com/flex020/uploads/getdbt/original/1X/814feb4be169f35154533dc869c0115030b40c1f.gif)

You can learn more about it and how to set it up in the github repo:

> **[GitHub - Infused-Insight/fzf-dbt: An integration for dbt and fzf that allows...](https://github.com/Infused-Insight/fzf-dbt)**
>
> An integration for dbt and fzf that allows interactive selection and search of dbt models. - GitHub - Infused-Insight/fzf-dbt: An integration for dbt and fzf that allows interactive selection and s...

[Next page](https://discourse.getdbt.com/t/how-we-set-up-our-computers-for-working-on-dbt-projects/243.md?page=2)
