diff --git a/.gitignore b/.gitignore
index c067bf1a714e24661d8bc8e3a343e022e1d7663c..3f839901b0b8d82dd6c2011fccc6ff8b902c9166 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,18 @@
 *.user
 doc/Doxyfile
 
+### VisualStudioCode ###
+.vscode/**/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+
+### VisualStudioCode Patch ###
+# Ignore all local history of files
+**/.history
+
 GeneratedFiles/
-.vs/
-.vscode/
 x64/
 x86/
 [wW]in32/
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000000000000000000000000000000000000..138c71c17f9457eb1b123c351450d969284794f3
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,75 @@
+{
+    "version": "0.2.0",
+    "configurations": [
+        {
+            "name": "Jami-Tests-Run",
+            "type": "cppdbg",
+            "request": "launch",
+            "program": "/usr/bin/ctest",
+            "args": ["-V", "-R"],
+            "cwd": "${workspaceFolder}/build/tests",
+            "externalConsole": false,
+            "environment": [
+                {
+                    "name": "HOME",
+                    "value": "/tmp"
+                }
+            ]
+        },
+        {
+            "name": "Jami-Client",
+            "type": "cppdbg",
+            "request": "launch",
+            "program": "${workspaceFolder}/build/jami",
+            "args": [
+                "-d",
+            ],
+            "stopAtEntry": false,
+            "cwd": "${workspaceFolder}",
+            "environment": [],
+            "externalConsole": false,
+            "MIMode": "gdb",
+            "setupCommands": [
+                {
+                    "description": "Enable pretty-printing for gdb",
+                    "text": "-enable-pretty-printing",
+                    "ignoreFailures": true
+                }
+            ],
+            "preLaunchTask": "cmake-build",
+            "miDebuggerPath": "/usr/bin/gdb",
+        },
+        {
+            "name": "Jami-Daemon-Debug",
+            "type": "cppdbg",
+            "request": "launch",
+            "program": "${workspaceFolder}/daemon/bin/dbus/jamid",
+            "args": [
+                "-cdp",
+            ],
+            "stopAtEntry": false,
+            "cwd": "${workspaceFolder}",
+            "environment": [],
+            "externalConsole": false,
+            "MIMode": "gdb",
+            "setupCommands": [
+                {
+                    "description": "Enable pretty-printing for gdb",
+                    "text": "-enable-pretty-printing",
+                    "ignoreFailures": true
+                }
+            ],
+            "preLaunchTask": "cmake-build",
+            "miDebuggerPath": "/usr/bin/gdb",
+        }
+    ],
+    "compounds": [
+        {
+            "name": "Jami-Client-IPC",
+            "configurations": [
+                "Jami-Daemon-Debug",
+                "Jami-Client",
+            ]
+        }
+    ]
+}
\ No newline at end of file
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
new file mode 100644
index 0000000000000000000000000000000000000000..f31c8b32c25d4f2de616faecc3518f36da53f279
--- /dev/null
+++ b/.vscode/tasks.json
@@ -0,0 +1,52 @@
+{
+    "version": "2.0.0",
+    "tasks": [
+        {
+            "label": "cmake-configure",
+            "type": "shell",
+            "command": "cmake",
+            "args": [
+                "-S", ".",
+                "-B", "build",
+                "-DCMAKE_BUILD_TYPE=Debug",
+                "-DCMAKE_PREFIX_PATH=\"/usr/lib64/qt-jami;/usr/lib/libqt-jami\"",
+                "-DBUILD_TESTING=True"
+            ],
+            "group": "build",
+            "problemMatcher": [],
+            "detail": "Generate the build system files with CMake."
+        },
+        {
+            "label": "cmake-build",
+            "type": "shell",
+            "command": "cmake",
+            "args": [
+                "--build", "build",
+                "-j$(nproc)",
+            ],
+            "group": {
+                "kind": "build",
+                "isDefault": true
+            },
+            "problemMatcher": [
+                "$gcc"
+            ],
+            "detail": "Compile the project using the generated build system.",
+            "dependsOn": [
+                "cmake-configure"
+            ]
+        },
+        {
+            "label": "cmake-clean",
+            "type": "shell",
+            "command": "rm",
+            "args": [
+                "-rf",
+                "build"
+            ],
+            "group": "build",
+            "problemMatcher": [],
+            "detail": "Clean the build directory."
+        }
+    ]
+}
\ No newline at end of file