diff --git a/src/main/java/cli/Action.java b/src/main/java/cli/Action.java
index 7c0b3819f8f9a0597eeb159e87f2256cc7c9498f..65daae1e42d874783fe417527bd7c15f1c86791b 100644
--- a/src/main/java/cli/Action.java
+++ b/src/main/java/cli/Action.java
@@ -73,7 +73,11 @@ import java.util.List;
  */
 public class Action extends Command {
     // Action commands
+    private final static String NEW = "new";
     private final static String OPEN = "open";
+    private final static String SAVE = "save";
+    private final static String SET_FILE = "set-file";
+    private final static String GET_FILE = "get-file";
     private final static String RESIZE = "resize";
     private final static String START = "start";
     private final static String QUIT = "quit";
@@ -190,7 +194,7 @@ public class Action extends Command {
             }
         };
 
-        // Open
+        // Resize
         Command resize = new Command() {
             public String getCommand() {
                 return RESIZE;
@@ -250,6 +254,116 @@ public class Action extends Command {
             }
         };
 
+        // New
+        Command newT = new Command() {
+            public String getCommand() {
+                return NEW;
+            }
+
+            public String getShortCommand() {
+                return "n";
+            }
+
+            public String getDescription() {
+                return "Creating a new model in TTool";
+            }
+
+            public String executeCommand(String command, Interpreter interpreter) {
+                if (!interpreter.isTToolStarted()) {
+                    return Interpreter.TTOOL_NOT_STARTED;
+                }
+
+                interpreter.mgui.newProject();
+
+                return null;
+            }
+        };
+
+        // Set-File
+        Command setFile = new Command() {
+            public String getCommand() {
+                return SET_FILE;
+            }
+
+            public String getShortCommand() {
+                return "sf";
+            }
+
+            public String getDescription() {
+                return "Setting the save file of TTool";
+            }
+
+            public String executeCommand(String command, Interpreter interpreter) {
+                if (!interpreter.isTToolStarted()) {
+                    return Interpreter.TTOOL_NOT_STARTED;
+                }
+
+                String[] commands = command.split(" ");
+                if (commands.length < 1) {
+                    return Interpreter.BAD;
+                }
+
+                String fileName = commands[commands.length-1];
+
+                interpreter.mgui.setFileName(fileName);
+
+                return null;
+            }
+        };
+
+        Command getFile = new Command() {
+            public String getCommand() {
+                return GET_FILE;
+            }
+
+            public String getShortCommand() {
+                return "gf";
+            }
+
+            public String getDescription() {
+                return "Get the name of the  model under edition TTool";
+            }
+
+            public String executeCommand(String command, Interpreter interpreter) {
+                if (!interpreter.isTToolStarted()) {
+                    return Interpreter.TTOOL_NOT_STARTED;
+                }
+
+
+
+                String fileName = interpreter.mgui.getFileName();
+
+                System.out.println(fileName);
+
+                return null;
+            }
+        };
+
+        // Save
+        Command save = new Command() {
+            public String getCommand() {
+                return SAVE;
+            }
+
+            public String getShortCommand() {
+                return "sm";
+            }
+
+            public String getDescription() {
+                return "Saving a model in TTool";
+            }
+
+            public String executeCommand(String command, Interpreter interpreter) {
+                if (!interpreter.isTToolStarted()) {
+                    return Interpreter.TTOOL_NOT_STARTED;
+                }
+
+                interpreter.mgui.saveProject();
+
+                return null;
+            }
+        };
+
         // Quit
         Command quit = new Command() {
             public String getCommand() {
@@ -900,7 +1014,11 @@ public class Action extends Command {
 
 
         addAndSortSubcommand(start);
+        addAndSortSubcommand(newT);
         addAndSortSubcommand(open);
+        addAndSortSubcommand(setFile);
+        addAndSortSubcommand(getFile);
+        addAndSortSubcommand(save);
         addAndSortSubcommand(resize);
         addAndSortSubcommand(quit);
         addAndSortSubcommand(checkSyntax);
diff --git a/src/main/java/ui/MainGUI.java b/src/main/java/ui/MainGUI.java
index 342e244bd7e3c00b3b723635ee280cccef35260c..52917f52bfb4b2872fe0c94797d382bdba514334 100644
--- a/src/main/java/ui/MainGUI.java
+++ b/src/main/java/ui/MainGUI.java
@@ -3189,7 +3189,17 @@ public class MainGUI implements ActionListener, WindowListener, KeyListener, Per
         return b;
     }
 
-    protected boolean saveProject() {
+    public String setFileName(String fileName) {
+        File f = new File(fileName);
+        file = FileUtils.addFileExtensionIfMissing(f, TFileFilter.getExtension());
+        return file.getName();
+    }
+
+    public String getFileName() {
+        return file.getAbsolutePath();
+    }
+
+    public boolean saveProject() {
         if (file == null) {
             if (dir != null)
                 createFileDialog();
diff --git a/src/main/resources/ui/util/starting_logo.png b/src/main/resources/ui/util/starting_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..45bce4de750fe88a734d5ba888f628999658f925
Binary files /dev/null and b/src/main/resources/ui/util/starting_logo.png differ
diff --git a/src/main/resources/ui/util/starting_logo.xcf b/src/main/resources/ui/util/starting_logo.xcf
new file mode 100644
index 0000000000000000000000000000000000000000..d063c73d8d1c47bc41e5a94fc7b8d330d3431be7
Binary files /dev/null and b/src/main/resources/ui/util/starting_logo.xcf differ
diff --git a/src/main/resources/ui/util/telecomparis_endossem_ipp_rvb_150pix.png b/src/main/resources/ui/util/telecomparis_endossem_ipp_rvb_150pix.png
new file mode 100644
index 0000000000000000000000000000000000000000..5508ad301722d4a1f0f359d1811e4ea7c0071752
Binary files /dev/null and b/src/main/resources/ui/util/telecomparis_endossem_ipp_rvb_150pix.png differ
diff --git a/ttool-cli/src/main/java/TToolCLI.java b/ttool-cli/src/main/java/TToolCLI.java
index 3e3db912ba835340c6b3f202def19e17ad8b8ea7..31d93bc819e84ccba04bb2d26b493f07ba34d091 100755
--- a/ttool-cli/src/main/java/TToolCLI.java
+++ b/ttool-cli/src/main/java/TToolCLI.java
@@ -67,7 +67,7 @@ public class TToolCLI implements InterpreterOutputInterface {
 
     public static void printUsage() {
         System.out.println("ttool-cli: usage");
-        System.out.println("ttool-cli <script file> OR ttool-cli -help");
+        System.out.println("ttool-cli <script file> OR ttool-cli -help OR ttool-cli -interact");
         System.out.println("options: -debug -show");
 
     }
diff --git a/ttool/src/main/java/Main.java b/ttool/src/main/java/Main.java
index 2ed838b323daf72af7725aa125f6244cd6862797..a99b3332ec8772f576c14042bc30168bec3600c9 100755
--- a/ttool/src/main/java/Main.java
+++ b/ttool/src/main/java/Main.java
@@ -106,7 +106,7 @@ public class Main implements ActionListener, InterpreterOutputInterface{
 
         JStartingWindow splashFrame = null;
         //System.out.println("hello");
-        URL imageURL = Main.class.getResource("ui/util/starting_logo.gif");
+        URL imageURL = Main.class.getResource("ui/util/starting_logo.png");
         Image img;
         //System.out.println("helli");
         if (imageURL != null) {
diff --git a/ttool/src/test/java/cli/CLIModelTest.java b/ttool/src/test/java/cli/CLIModelTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..c0f0a2d9870657c555297e9a725ddebf5ddbac73
--- /dev/null
+++ b/ttool/src/test/java/cli/CLIModelTest.java
@@ -0,0 +1,132 @@
+/**Copyright or (C) or Copr. GET / ENST, Telecom-Paris, Ludovic Apvrille
+ *
+ * ludovic.apvrille AT enst.fr
+ *
+ * This software is a computer program whose purpose is to allow the
+ * edition of TURTLE analysis, design and deployment diagrams, to
+ * allow the generation of RT-LOTOS or Java code from this diagram,
+ * and at last to allow the analysis of formal validation traces
+ * obtained from external tools, e.g. RTL from LAAS-CNRS and CADP
+ * from INRIA Rhone-Alpes.
+ *
+ * This software is governed by the CeCILL  license under French law and
+ * abiding by the rules of distribution of free software.  You can  use,
+ * modify and/ or redistribute the software under the terms of the CeCILL
+ * license as circulated by CEA, CNRS and INRIA at the following URL
+ * "http://www.cecill.info".
+ *
+ * As a counterpart to the access to the source code and  rights to copy,
+ * modify and redistribute granted by the license, users are provided only
+ * with a limited warranty  and the software's author,  the holder of the
+ * economic rights,  and the successive licensors  have only  limited
+ * liability.
+ *
+ * In this respect, the user's attention is drawn to the risks associated
+ * with loading,  using,  modifying and/or developing or reproducing the
+ * software by the user in light of its specific status of free software,
+ * that may mean  that it is complicated to manipulate,  and  that  also
+ * therefore means  that it is reserved for developers  and  experienced
+ * professionals having in-depth computer knowledge. Users are therefore
+ * encouraged to load and test the software's suitability as regards their
+ * requirements in conditions enabling the security of their systems and/or
+ * data to be ensured and,  more generally, to use and operate it in the
+ * same conditions as regards security.
+ *
+ * The fact that you are presently reading this means that you have had
+ * knowledge of the CeCILL license and that you accept its terms.
+ *
+ * /**
+ * Class AvatarPragma
+ * Creation: 20/05/2010
+ * @version 1.1 01/07/2014
+ * @author Ludovic APVRILLE, Raja GATGOUT
+ * @see
+ */
+
+package cli;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import java.io.File;
+import java.nio.file.Files;
+
+import common.ConfigurationTTool;
+import common.SpecConfigTTool;
+import graph.AUTGraph;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import test.AbstractTest;
+
+
+public class CLIModelTest extends AbstractTest implements InterpreterOutputInterface {
+
+    final static String PATH_TO_TEST_FILE = "cli/input/";
+    final static String PATH_TO_OUTPUT_FILE = "cli/output/";
+    final static String NEW_MODEL_FILE = PATH_TO_OUTPUT_FILE + "mynewmodel.xml";
+    private StringBuilder outputResult;
+
+
+
+	public CLIModelTest() {
+	    //
+    }
+	
+
+    public void exit(int reason) {
+	    System.out.println("Exit reason=" + reason);
+	    assertTrue(reason == 1);
+    }
+
+    public void printError(String error) {
+        System.out.println("Error=" + error);
+    }
+
+    public void print(String s) {
+	    System.out.println("info from interpreter:" + s);
+	    outputResult.append(s);
+    }
+	
+	@Test
+	public void testNewModel() {
+	    String filePath = getBaseResourcesDir() + PATH_TO_TEST_FILE + "scriptmodel";
+	    String script;
+	    
+	    outputResult = new StringBuilder();
+
+	    File f = new File(filePath);
+	    assertTrue(myutil.FileUtils.checkFileForOpen(f));
+
+	    script = myutil.FileUtils.loadFileData(f);
+
+	    assertTrue(script.length() > 0);
+
+
+        // Create directory
+        File removeIfExists = new File(getBaseResourcesDir() + NEW_MODEL_FILE);
+        if (removeIfExists.exists()) {
+            removeIfExists.delete();
+        }
+        File makeDir = new File(getBaseResourcesDir() + PATH_TO_OUTPUT_FILE);
+        makeDir.mkdir();
+        System.out.println("Created: " + makeDir.getAbsolutePath());
+
+
+	    boolean show = false;
+        Interpreter interpret = new Interpreter(script, (InterpreterOutputInterface)this, show);
+        interpret.interpret();
+
+        // Must check if the model has really been saved
+        f = new File(getBaseResourcesDir() + NEW_MODEL_FILE);
+        assertTrue(myutil.FileUtils.checkFileForOpen(f));
+        String data = myutil.FileUtils.loadFileData(f);
+
+        assertTrue(data.length() > 0);
+        assertTrue (f.length() > 100);
+        assertTrue (f.length() < 500);
+
+
+	}
+	
+
+
+}
diff --git a/ttool/src/test/resources/cli/input/scriptmodel b/ttool/src/test/resources/cli/input/scriptmodel
new file mode 100644
index 0000000000000000000000000000000000000000..0d9184b69104e95375f1e588cb788eaadf5ef65b
--- /dev/null
+++ b/ttool/src/test/resources/cli/input/scriptmodel
@@ -0,0 +1,9 @@
+action start
+wait 2
+action new
+wait 2
+action set-file resources/test/cli/output/mynewmodel
+action get-file
+action save
+wait 1
+action quit