Emacs Elixir syntax checking not working

Make sure you can run credo from command line.
Add credo dependency to mix.exs:

defp deps do
    [
      {:credo, "~> 1.4", only: [:dev, :test], runtime: false}  
    ]

download and run credo:

mix deps.get

mix credo

My emacs setup works fine:

(use-package elixir-mode)

(use-package alchemist-mode
  :ensure alchemist
  :hook elixir-mode
  :bind (:map elixir-mode-map
	      ("s-c" . alchemist-iex-compile-this-buffer)
	      ("C-c C-l" . alchemist-iex-project-run)))

(use-package company
  :init
  (add-hook 'elixir-mode-hook 'company-mode)
  :bind (:map elixir-mode-map
	      ("TAB" . company-indent-or-complete-common)))

(use-package flycheck-mode
  :hook elixir-mode
  :ensure flycheck
  :config
  (use-package flycheck-credo)
  (flycheck-credo-setup))

Also you could try M-x flycheck-verify-setup

It should print something like:

First checker to run:

elixir-credo
- may enable: yes
- executable: Found at /Users/maris/.kiex/elixirs/elixir-1.10.3/bin/mix