diff --git a/llama/main_automatic.go b/llama/main_automatic.go
new file mode 100644
index 0000000000000000000000000000000000000000..a4b336500b8e5edddcbfc20292c1047d4173c44f
--- /dev/null
+++ b/llama/main_automatic.go
@@ -0,0 +1,84 @@
+package main
+
+import (
+	"fmt"
+	"io"
+	"llama/compiler"
+	displayindicator "llama/display-indicator"
+	"llama/extraction"
+	ollamaimplementation "llama/ollama-implementation"
+	"os"
+	"strings"
+)
+
+func main() {
+	//reader := bufio.NewReader(os.Stdin)
+	var conversationContext []int // Variable to store conversation context
+
+	//fmt.Print("Enter your prompt (or type 'exit' to quit): ")
+	//userPrompt, _ := reader.ReadString('\n')
+	//userPrompt = strings.TrimSpace(userPrompt)
+	promptText, err := os.Open("promptList.txt")
+	if err != nil {
+		fmt.Println("Error opening file", err)
+	}
+
+	text, err := io.ReadAll(promptText)
+	if err != nil {
+		fmt.Println("Error reading file:", err)
+		return
+	}
+
+	prompt := string(text)
+
+	promptList := strings.Split(prompt, "\n")
+
+	var userPrompt = ""
+	for i := range promptList {
+		fmt.Println(promptList[i])
+		userPrompt = promptList[i]
+
+		//if userPrompt == "exit" {
+		//	fmt.Println("Exiting the program.")
+		//	break
+		//}
+
+		var modifiedPrompt = userPrompt + extraction.GoPrompt
+
+		fmt.Println("Prompt received. Generating response...")
+
+		// Start a go routine to display a waiting indicator while the response is being generated
+		done := make(chan bool)
+		go displayindicator.DisplayLoadingIndicator(done)
+
+		// Generate response using Ollama API, passing the context
+		response, updatedContext, err := ollamaimplementation.GetOllamaResponse(modifiedPrompt, conversationContext)
+
+		// Signal the waiting indicator to stop
+		done <- true
+
+		if err != nil {
+			fmt.Println("Error generating response:", err)
+			continue
+		}
+
+		// Update the conversation context with the response
+		conversationContext = updatedContext
+		//fmt.Println(updatedContext)
+
+		generatedCode, _ := extraction.Extract(response) // Handle error with string
+
+		fmt.Println("Ollama's response:", generatedCode)
+
+		output, err := compiler.CompileStringToGo(generatedCode)
+
+		if err != nil {
+			fmt.Println("There were an error in the code that was compiled")
+			userPrompt = output + "\nFollowing are the errors, please fix the code. Write it again, and write only source code along with same test cases with no further explanation. The format should be ```rust <yourcode + testcases> ```"
+		} else {
+			fmt.Println("Compiled successfully. Here is the output: %v", output)
+			//userPrompt = "exit"
+		}
+
+	}
+}
diff --git a/llama/promptList.txt b/llama/promptList.txt
new file mode 100644
index 0000000000000000000000000000000000000000..083807ee7adb60b095ddffe2aac690337781d833
--- /dev/null
+++ b/llama/promptList.txt
@@ -0,0 +1,4 @@
+write a code that ads 1 and 1
+make a output with numbers from 1 to 10
+make a output with prime numbers from 1 to 20
+make a bubble sort and input to run it from main
\ No newline at end of file