diff --git a/functionurl.go b/functionurl.go
index 51c0472..3432b31 100644
--- a/functionurl.go
+++ b/functionurl.go
@@ -424,7 +424,7 @@ func (app *App) initFunctionURL(ctx context.Context, fn *Function, exists bool,
 			return err
 		}
 	}
-	if err := app.saveFile(name, b, os.FileMode(0644)); err != nil {
+	if err := app.saveFile(name, b, os.FileMode(0644), opt.ForceOverwrite); err != nil {
 		return err
 	}
 
diff --git a/init.go b/init.go
index b7f25a4..de7bc93 100644
--- a/init.go
+++ b/init.go
@@ -17,11 +17,12 @@ import (
 
 // InitOption represents options for Init()
 type InitOption struct {
-	FunctionName *string `help:"Function name for init" required:"true" default:""`
-	DownloadZip  bool    `name:"download" help:"Download function.zip" default:"false"`
-	Jsonnet      bool    `default:"false" help:"render function.json as jsonnet"`
-	Qualifier    *string `help:"function version or alias"`
-	FunctionURL  bool    `help:"create function url definition file" default:"false"`
+	FunctionName   *string `help:"Function name for init" required:"true" default:""`
+	DownloadZip    bool    `name:"download" help:"Download function.zip" default:"false"`
+	Jsonnet        bool    `help:"render function.json as jsonnet" default:"false"`
+	Qualifier      *string `help:"function version or alias"`
+	FunctionURL    bool    `help:"create function url definition file" default:"false"`
+	ForceOverwrite bool    `help:"Overwrite existing files without prompting" default:"false"`
 }
 
 // Init initializes function.json
@@ -90,6 +91,7 @@ func (app *App) Init(ctx context.Context, opt *InitOption) error {
 		IgnoreFilename,
 		[]byte(strings.Join(DefaultExcludes, "\n")+"\n"),
 		os.FileMode(0644),
+		opt.ForceOverwrite,
 	)
 	if err != nil {
 		return err
@@ -109,7 +111,7 @@ func (app *App) Init(ctx context.Context, opt *InitOption) error {
 			return err
 		}
 	}
-	if err := app.saveFile(name, b, os.FileMode(0644)); err != nil {
+	if err := app.saveFile(name, b, os.FileMode(0644), opt.ForceOverwrite); err != nil {
 		return err
 	}
 
diff --git a/utils.go b/utils.go
index fe51e20..f7ae0ed 100644
--- a/utils.go
+++ b/utils.go
@@ -12,9 +12,9 @@ import (
 	"github.com/google/go-jsonnet/formatter"
 )
 
-func (app *App) saveFile(path string, b []byte, mode os.FileMode) error {
+func (app *App) saveFile(path string, b []byte, mode os.FileMode, force bool) error {
 	if _, err := os.Stat(path); err == nil {
-		ok := prompter.YN(fmt.Sprintf("Overwrite existing file %s?", path), false)
+		ok := force || prompter.YN(fmt.Sprintf("Overwrite existing file %s?", path), false)
 		if !ok {
 			return nil
 		}